2

すべての接続をhtt_p://www.example.com/abc.htmlからHTTP_S://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は、適切なDirectoryディレクティブにあります。

どうもありがとう。

4

1 に答える 1

1

次のようなものを使用すると、非SSLページをSSLバージョンにリダイレクトできます(ポート443で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]フラグは、文字通り「または」です。これが、最後の条件にそれがない理由です。

于 2010-02-19T00:27:28.897 に答える