我已经安装了一个SSL证书,并运行在Apache 2.2.14上。 现在,我想限制使用https只有一个目录,即www.example.com/shop。 如果用户转到https://www.example.com或任何其他url,但www.example.com/shop,我想强制http而不是https。
我在这个网站上运行的Wordpress,并不能为我的生活弄清楚如何编写正确的重写规则(我敢打赌简单)的情况。 任何帮助感激!
那么,我想不出有什么好的理由来主动阻止HTTPS的使用,但这应该做到这一点…
RewriteCond %{HTTPS} on RewriteCond %{REQUEST_URI} !^/shop [NC] RewriteRule ^ http://%{HTTP_HOST}%{REQUEST_URI} [R=301]
一个简单的重写规则是:
RewriteEngine On RewriteCond %{HTTPS} off RewriteRule (.*) https://%{HTTP_HOST}%{REQUEST_URI}
您也可以使用该目录的.htaccess文件中的SSLRequireSSL指令来完全禁止通过HTTP访问该文件夹,即使由于某种原因而忽略重写规则。
PS我认为你可以使用%{SERVER_PORT_SECURE}来代替上面的%{HTTPS} 。
难道你不能只在商店目录中使用SSLRequireSSL .htaccess和其他地方的SSLDenySSL ?