将 SSL 的使用限制在 Apache 中的一个目录中

将 SSL 的使用限制在 Apache 中的一个目录中

我已安装 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别处?

相关内容