我已安装 SSL 证书,并且与 Apache 2.2.14 配合良好。现在,我想将 https 的使用限制在一个目录中,即 www.example.com/shop。如果用户访问https://www.example.com或者除 www.example.com/shop 之外的任何其他 URL,我想强制使用 http 而不是 https。
我正在这个网站上运行 Wordpress,但无论如何也想不出如何为这个(我猜很简单)场景编写正确的重写规则。任何帮助都非常感谢!
答案1
好吧,我想不出任何主动阻止使用 HTTPS 的好理由,但这应该可以做到......
RewriteCond %{HTTPS} on
RewriteCond %{REQUEST_URI} !^/shop [NC]
RewriteRule ^ http://%{HTTP_HOST}%{REQUEST_URI} [R=301]
答案2
一个简单的重写规则是:
RewriteEngine On
RewriteCond %{HTTPS} off
RewriteRule (.*) https://%{HTTP_HOST}%{REQUEST_URI}
您还可以使用SSLRequireSSL 指令在该目录的 .htaccess 文件中,完全禁止通过 HTTP 访问该文件夹,即使重写规则由于某种原因被忽略。
附言我认为您可以用它%{SERVER_PORT_SECURE}
代替%{HTTPS}
上述内容。
答案3
你不能只使用SSLRequireSSL在商店目录 .htaccess 中SSLDenySSL别处?