htaccess重写规则调整

时间:2013-09-04 09:22:27

标签: .htaccess rewrite

我有一个安装了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

显然我做错了,所以任何帮助都会受到赞赏。

由于

1 个答案:

答案 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}一开始就有/