4

httpd.conf に、ポート 443 用とポート 80 用の 2 つの仮想ホストがあります。

<VirtualHost IPADDRESS:80>
</VirtualHost>

<VirtualHost IPADDRESS:443>
</VirtualHost>

ここで、すべてのリクエストを自分のサーバーにリダイレクトして、ブログを非 SSL にすることをhttps://www.mysite.com/除きます。http://www.mysite.com/blog/どの virtualHost ディレクティブのどこに RewriteRules を配置すればよいですか? そして、そのためにはどのような規則が必要ですか?

4

1 に答える 1

7

ポート 80 の VirtualHost では、ルールによってブログ以外のすべてが SSL に書き換えられます。443 ホストでは、ブログ リクエストを非 SSL に書き換えます (強制的に非 SSL に戻したい場合)。

<VirtualHost IPADDRESS:80>
  RewriteEngine On

  # Rewrite everything except the blog to SSL
  RewriteCond %{REQUEST_URI} !^/blog
  RewriteRule (.*) https://www.example.com/$1 [L,R,QSA]
</VirtualHost>

<VirtualHost IPADDRESS:443>
  RewriteEngine On

  # Rewrite the blog back to plain http
  # Leave this out if you don't care that https requests to the blog stay
  # on ssl
  RewriteRule ^(blog*) http://www.example.com/$1 [L,R,QSA]
</VirtualHost>
于 2012-05-08T02:10:32.650 に答える