Apacheは常にHTTPS経由で単一のページを用意していますことを確実にするためにどのように?

StackOverflow https://stackoverflow.com/questions/2292919

質問

私はhtt_pからのすべての接続をリダイレクトしたいと思います:HTTP_Sに//www.example.com/abc.html://www.example.com/abc.html。何mod_aliasやmod_rewriteのコマンドは、このために働くのでしょうか?私が試した:

RewriteEngine on
RewriteCond %{HTTPS} =off
RewriteRule $abc\.html^ https://www.example.com/abc.html [R]
.htaccessファイルとhttpd.confのが、その両方で

は動作しません。 RewriteRuleの最初の文字列は、(abz.htmlのような)何かがあるならば、それはabc.htmlでない場合は動作します。 abc.htmlは、サーバー(ない別のリダイレクト)上の実ファイルです。オプションFollowSymLinksを、適切なディレクトリディレクティブに存在してます。

感謝します。

役に立ちましたか?

解決

以下の線に沿って何かを使用すると、SSLのバージョン(あなたは、ポート443でSSLを実行していることを仮定した場合)に非SSLページをリダイレクトすることができます:

RewriteEngine on

# Limited redirects
RewriteCond %{SERVER_PORT} !^443$
RewriteCond %{REQUEST_URI} ^/abc\.html$ [OR,NC]
RewriteCond %{REQUEST_URI} ^/def\.html$ [OR,NC]
RewriteCond %{REQUEST_URI} ^/ghi\.html$ [NC]
RewriteRule ^/(.*)$ https://%{HTTP_HOST}/$1 [R=301,L]
のRewriteCond後に[OR]フラグは、最後の条件がそれを持っていない理由である、文字通りつまり「または」

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top