如何解决在 rewriteCond 中匹配 HTTP_HOST?
我有两台服务器在为我的应用程序运行。
生产和分期如下。
如果 HTTP_HOST 匹配 www.sitedomain.com 或 stage.sitedomain.com,我需要执行一些重定向规则
如果 URL 是 https://www.sitedomain.com/us-en 页面应该重定向到 https://www.sitedomain.us/
如果 URL 是 https://stage.sitedomain.com/us-en 页面应该重定向到 https://stage.sitedomain.us/
我正在执行以下步骤
RewriteCond %{HTTP_HOST} ^www\.sitedomain\.com$ [NC] 1
RewriteRule ^/us-en/(.*)$ https://www.sitedomain.us/$1 [R=301,L,NC] 2
RewriteCond %{HTTP_HOST} ^stage\.sitedomain\.com$ [NC] 3
RewriteRule ^/us-en/(.*)$ https://stage.sitedomain.us/$1 [R=301,NC] 4
问题是每当我点击 https://stage.sitedomain.com/us-en 时,我都会重定向到 https://www.sitedomain.us/,而不是 https://stage.sitedomain.us(只是说它永远不会到达第 3 行)
所以第 1 行总是执行为 True,并重写第 2 行执行阶段 URL 的规则。
谁能帮我解决这个问题??
解决方法
根据您展示的样品,您可以尝试以下操作吗?确保这是 htaccess 规则文件的第一条规则。请先清除浏览器缓存,然后再测试您的网址。
[ABC foo bar 123,ABC baz nice 345]
如果您只想将这些规则应用于 un-es 网址,请尝试以下操作,确保您一次使用上述或以下规则。
RewriteEngine ON
RewriteCond %{HTTP_HOST} ^(www|stage)\.(sitedomain\.com)$ [NC]
RewriteRule ^([^-]*)-.*/?$ https://%1.%2.$1/ [NE,R=301,L]
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。