.htaccess将https url重定向到http

时间:2011-09-15 14:46:44

标签: apache .htaccess mod-rewrite

我有一个网站,其中一些区域使用https,但是我在将一些https网址更改为http网址时遇到了问题。这就是我需要的:

更改此网址网址

https://www.domain.com/somefile.php?PossibleGetParameters

到此:

http://www.domain.com/somefile.php?PossibleGetParameters

这就是我在.htaccess上的内容:

RewriteCond %{HTTPS} on
RewriteCond %{REQUEST_URI} !^(/somefile.php)
RewriteRule ^(.*)$ http://%{HTTP_HOST}%{REQUEST_URI} [R=301,L]

在这种情况下,所有https网址都会转为http,我只希望更改此特定网址。有什么方法可以解决这个问题吗?

1 个答案:

答案 0 :(得分:0)

当然......只需从第二个条件中移除感叹号! - 在该位置它会否定该规则。

最终规则是:

RewriteCond %{HTTPS} on
RewriteCond %{REQUEST_URI} ^/somefile.php
RewriteRule .* http://%{HTTP_HOST}%{REQUEST_URI} [R=301,L]

我已经简化了规则(因为你只需要一个URL)。

此规则可能无法立即生效,因为现代浏览器会缓存301重定向..因此浏览器可能会记住您以前的尝试。因此,在测试规则之前清除浏览器缓存并重新启动它(或尝试其他浏览器)。