我正在构建一个 preprod 环境,客户端和开发人员将能够检查他们即将建立的网站是否一切正常,但我必须禁用所有 HTTPS 重定向,因为此时它会落在 PROD 站点中HOSTNAME 在请求中发送。
这是我正在使用的示例之一:
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]
Run Code Online (Sandbox Code Playgroud)
问题是,即使我访问:
http://s.domain.com/basket//coordonnees/login/
Run Code Online (Sandbox Code Playgroud)
它仍然将我重定向到 HTTPS 版本,但我在 s.domain.com 上有一个重写条件,说要跳过此规则......我做错了什么?
疯狂编码器
没关系,我在两秒钟后找到了它,但这可能对其他人有帮助:
条件:
RewriteCond %{HTTP_HOST} (www\.)?domain\.com
Run Code Online (Sandbox Code Playgroud)
在条件上发生冲突:
RewriteCond %{HTTP_HOST} ^s\.domain\.com
Run Code Online (Sandbox Code Playgroud)
因为我没有放!一开始。如果我放!在 (www.)?domain.com 之前它不会匹配 s.domain.com,因此工作正常......
| 归档时间: |
|
| 查看次数: |
22904 次 |
| 最近记录: |