微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

在 rewriteCond 中匹配 HTTP_HOST?

如何解决在 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 举报,一经查实,本站将立刻删除。