我有一个安装了HTTPS的网站。
我需要确保所有页面(有意HTTPS的除外)都被强制显示在非https上。
HTTPS仅安装在domain-name.com/ssl-directory/what-ever-page-goes-here/
因此,只有domain-name.com/ssl-directory/
之后的页面应该保留HTTPS(他们现在这样做)而所有其他页面(包括domain-name.com/ssl-directory/
本身应该被强制为非https)。
到目前为止,这是我所得到的,但它不起作用,因为我不是htaccess重定向的专家,我不知道为什么。
RewriteEngine on
RewriteCond %{HTTPS} =on
RewriteCond %{REQUEST_URI} !^ssl-directory/(.*)
RewriteRule .* http://%{SERVER_NAME}%{REQUEST_URI} [R,L]
正如我所说,我不是这方面的专家,但我认为这应该意味着=>
打开RewriteEngine
如果HTTPS
和
如果REQUEST_URI
不是ssl-directory
重写到同一页面,但使用http
显然我做错了,所以任何帮助都会受到赞赏。
由于
答案 0 :(得分:0)
用以下代码替换您的代码:
RewriteEngine On
RewriteCond %{HTTPS} on
RewriteCond %{REQUEST_URI} !^/ssl-directory(/.*|)$ [NC]
RewriteRule ^ http://%{HTTP_HOST}%{REQUEST_URI} [R=301,L]
最好使用HTTP_HOST
代替SERVER_NAME
而%{REQUEST_URI}
一开始就有/
。