.htaccess - 从站点上的特定文件夹中删除 HTTPS
问题描述
我的客户问我是否可以在站点上的特定文件夹上删除并强制“http”,该文件夹与另一台服务器上的另一个 Web 应用程序链接。我们最近添加了一个 SSL 证书,它似乎会导致曾经使用该文件夹创建的所有链接出现问题。
所以现在,整个站点都处于 HTTPS 模式。但是整个站点中有 1 个文件夹必须是“HTTP”。整个站点的其余部分应保持 HTTPS。
该文件夹称为“邮件”。
我试过这个:
RewriteEngine On
RewriteCond %{HTTPS} off
RewriteCond %{REQUEST_URI} !^/mailing
RewriteRule (.*) https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301]
但它什么也没做。
HTACCESS 文件的顶部也有这个代码块:
RewriteEngine On
RewriteCond %{SERVER_PORT} 80
RewriteCond %{REQUEST_URI} !^/[0-9]+\..+\.cpaneldcv$
RewriteCond %{REQUEST_URI} !^/[A-F0-9]{32}\.txt(?:\ Comodo\ DCV)?$
RewriteRule ^(.*)$ https://www.MYWEBSITE.ca/$1 [R,L]
我试着注释掉这部分,只把第一块代码放在那里,但仍然没有。是的,我清除了缓存并重新启动浏览器进行测试。
有任何想法吗?谢谢!
解决方案
在 .htaccess 顶部添加这两条规则:
RewriteEngine On
$ for http except mailing force https://
RewriteCond %{HTTPS} off
RewriteCond %{THE_REQUEST} !\s/+mailing[/?\s] [NC]
RewriteCond %{REQUEST_URI} !^/[0-9]+\..+\.cpaneldcv$
RewriteCond %{REQUEST_URI} !^/[A-F0-9]{32}\.txt(?:\ Comodo\ DCV)?$
RewriteRule ^ https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301,NE]
$ for https mailing force http://
RewriteCond %{HTTPS} on
RewriteCond %{THE_REQUEST} \s/+mailing[/?\s] [NC]
RewriteRule ^ http://%{HTTP_HOST}%{REQUEST_URI} [L,R=301,NE]