2011-09-15 164 views
0

我有一个网站,其中一些地区使用https,但是我有问题,将一些https网址更改为http。这正是我需要的:.htaccess将https url重定向到http

更改此网址URL

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,我只希望这个特定的网址改变。有没有什么办法解决这一问题?

回答

0

当然...只是从第二个条件删除感叹号! - 在那个位置它否定了规则。

最终规则将是:

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

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

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