2012-03-19 29 views
2

我正在構建一個preprod環境,客戶端和開發人員將能夠檢查他們即將放置的網站的一切工作正常,但我必須禁用所有HTTPS重定向,因爲此時它將落入請求中的HOSTNAME發送的PROD站點中。RewriteCond HTTP_HOST仍然通過

這是我使用的一個例子:

RewriteCond %{HTTP_HOST} (www\.)?domain\.com 
RewriteCond %{HTTP_HOST} ^s\.domain\.com 
RewriteCond %{SERVER_PORT} 80 
RewriteCond %{REQUEST_URI} !^/?basket/$ 
RewriteCond %{REQUEST_URI} !^/?basket/add/ 
RewriteCond %{REQUEST_URI} !^/?basket/delete/ 
RewriteCond %{REQUEST_URI} !^/?basket/modify/ 
RewriteCond %{REQUEST_URI} !^/?basket//add/ 
RewriteCond %{REQUEST_URI} !^/?basket//delete/ 
RewriteCond %{REQUEST_URI} !^/?basket//modify/ 
RewriteCond %{REQUEST_URI} !^/?basket/info_panier.js 
RewriteRule ^/?basket/.*$ https://%{SERVER_NAME}%{REQUEST_URI} [R,L] 

問題是,即使我訪問:

http://s.domain.com/basket//coordonnees/login/ 

它仍然重定向我到HTTPS版本,但我有一個重寫s.domain.com上的條件,說跳過這條規則......我做錯了什麼?

CrazyCoder

回答

4

沒關係,我發現它兩秒鐘之後,但是這可能幫助其他人:

條件:

RewriteCond %{HTTP_HOST} (www\.)?domain\.com 

來到發生衝突的條件:

RewriteCond %{HTTP_HOST} ^s\.domain\.com 

因爲我沒有放!從一開始。如果我放! (www。)?domain.com之前它不會匹配s.domain.com,因此工作正常...

+0

所以,這是如何更改您的示例代碼,以便它'工作正常'? '''RewriteCond%{HTTP_HOST}!^ s \ .domain \ .com''' – SherylHohman 2017-02-18 10:45:22

相關問題