Apacheは常にHTTPS経由で単一のページを用意していますことを確実にするためにどのように?
-
21-09-2019 - |
質問
私は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]フラグは、最後の条件がそれを持っていない理由である、文字通りつまり「または」
所属していません StackOverflow