2012-03-16 88 views
0

對於以各種其他形式提出的問題提出質疑,但我沒有遇到針對特定情況的解決方案。將HTTPS重定向到HTTP,但一個目錄除外

我想將所有頁面重定向到HTTP(通過mod_rewrite),除非它們位於/ secure /文件夾中。

這是我已經試過:

RewriteCond %{HTTPS} on 
RewriteCond %{REQUEST_URI} !^secure 
RewriteRule (.*) http://%{HTTP_HOST}%{REQUEST_URI} 

另一個版本,有人聲稱工作,但在這種情況下不工作:

RewriteRule ^secure/ - [L] 
RewriteCond %{SERVER_PORT} !^80$ 
RewriteRule^http://www.thevirtualstagingexperts.com%{REQUEST_URI} [L,R=301] 

我寧願使用的變化第一版。它看起來應該起作用(無論如何)。任何人都可以在這個令人沉悶的主題上閃耀一些線條?

+0

爲什麼你想擺脫HTTPS的,特別是如果客戶明確要求呢? – gereeter 2012-03-16 21:50:14

+0

我只想使用HTTPS進行結帳過程,該過程位於/ secure /文件夾中。不需要使用HTTPS瀏覽網站的其餘部分。 – 2012-03-16 21:52:32

+0

我使用絕對鏈接從一個到另一個,但我想有一個規則,以防萬一。 – 2012-03-16 21:53:02

回答

-1

有人向我指出,HTTPS不像我想象的那樣對Apache徵稅。顯然,大部分的額外負擔都來自建立連接。由於此時客戶端已經建立了安全連接,因此讓他們繼續使用它應該沒問題。

如果有誰誰讀這知道爲什麼重寫規則:

RewriteCond %{HTTPS} on 
RewriteCond %{REQUEST_URI} !^secure 
RewriteRule (.*) http://%{HTTP_HOST}%{REQUEST_URI} 

不工作(不排除像它應該在/安全/目錄下),我很想知道。我是編程新手,不能理解像這樣的東西真的會在我的皮膚下。

謝謝Stack Overflow!

0

回覆:這裏是我試過

RewriteCond %{HTTPS} on 
RewriteCond %{REQUEST_URI} !^secure 
RewriteRule (.*) http://%{HTTP_HOST}%{REQUEST_URI} 

我想你錯過了對URI斜線:^/secure

+0

不幸的是,也沒有工作。感謝雖然:o) – 2012-03-17 01:11:53

0
RewriteCond %{HTTPS} on 
RewriteCond %{REQUEST_URI} !^/secure/.* 
RewriteRule (.*) http://%{HTTP_HOST}%{REQUEST_URI} [R,L] 
0

你原來的解決方案爲我工作,加入[R,L]到最後一條規則後:

RewriteEngine On 
RewriteCond %{HTTPS} on 
RewriteCond %{REQUEST_URI} !^secure 
RewriteRule (.*) http://%{HTTP_HOST}%{REQUEST_URI} [R,L]