2011-09-15 159 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重定向..因此瀏覽器可能會記住您以前的嘗試。因此,在測試規則之前清除瀏覽器緩存並重新啓動它(或嘗試其他瀏覽器)。