2012-03-19 30 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

相关问题