Mod rewrite 重写条件HTTP_主机仍然通过

Mod rewrite 重写条件HTTP_主机仍然通过,mod-rewrite,Mod Rewrite,我正在构建一个prepod环境,在这个环境中,客户端和开发人员将能够检查他们即将建立的网站是否一切正常,但我必须禁用所有HTTPS重定向,因为在这一点上,无论请求中发送的主机名是什么,它都会落在PROD站点中 这是我正在使用的示例之一: RewriteCond %{HTTP_HOST} (www\.)?domain\.com RewriteCond %{HTTP_HOST} ^s\.domain\.com RewriteCond %{SERVER_PORT} 80 RewriteCond %{R

我正在构建一个prepod环境,在这个环境中,客户端和开发人员将能够检查他们即将建立的网站是否一切正常,但我必须禁用所有HTTPS重定向,因为在这一点上,无论请求中发送的主机名是什么,它都会落在PROD站点中

这是我正在使用的示例之一:

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上有一个重写条件,要求跳过此规则。。。我做错了什么


疯狂代码

没关系,两秒钟后我找到了它,但这可能会帮助其他人:

条件:

RewriteCond %{HTTP_HOST} (www\.)?domain\.com
RewriteCond %{HTTP_HOST} ^s\.domain\.com
在以下情况下发生冲突:

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

因为我没有放一个!一开始。如果我放!在(www.)?domain.com之前,它将与s.domain.com不匹配,因此工作正常…

那么您是如何更改示例代码以使其“工作正常”的呢<代码>重写cond%{HTTP_HOST}^s\.domain\.com