Apache 是否在重写条件下匹配HTTP_主机?
我有两台服务器正在为我的应用程序运行 生产和分期如下 如果HTTP_主机与stage.sitedomain.com匹配,我需要执行一些重定向规则 如果URL为,则页面应重定向到 如果URL为,则页面应重定向到 我正在执行以下步骤Apache 是否在重写条件下匹配HTTP_主机?,apache,.htaccess,redirect,mod-rewrite,url-rewriting,Apache,.htaccess,Redirect,Mod Rewrite,Url Rewriting,我有两台服务器正在为我的应用程序运行 生产和分期如下 如果HTTP_主机与stage.sitedomain.com匹配,我需要执行一些重定向规则 如果URL为,则页面应重定向到 如果URL为,则页面应重定向到 我正在执行以下步骤 RewriteCond %{HTTP_HOST} ^www\.sitedomain\.com$ [NC] 1 RewriteRule ^/us-en/(.*)$ https://www.sitedom
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,L,NC] 4
问题是,每当我点击时,我都会重定向到,而不是(简单地说它永远不会到达第3行)
所以第1行始终作为True执行,并在第2行为stage URL执行重写规则
有谁能帮我解决这个问题吗???通过你们展示的样品,你们能试试下面的吗。确保这是htaccess规则文件的第一条规则。请在测试URL之前清除浏览器缓存
RewriteEngine ON
RewriteCond %{HTTP_HOST} ^(www|stage)\.(sitedomain\.com)$ [NC]
RewriteRule ^([^-]*)-.*/?$ https://%1.%2.$1/ [NE,R=301,L]
如果您只想将这些规则应用于un es URL,请尝试以下操作,确保一次使用上述或以下规则
RewriteEngine ON
RewriteCond %{HTTP_HOST} ^(www|stage)\.(sitedomain\.com)$ [NC]
RewriteRule ^(us)-en/?$ https://%1.%2.$1/ [NE,R=301,L]
@saravanan baskar,你能告诉我这是否对你有效吗?是的,Ravinder这个解决方案解决了我的问题。。。真的花了几个小时在这上面。。非常感谢。。。。。但是你有什么理由解释我上面提到的代码没有按预期工作吗…@saravananbaskar,我可以从中看到两个主要的东西,一个是正则表达式没有正确使用,第二个是重写规则部分检查
^/
不正确,它不是从/
开始匹配的,因此它在任何情况下都不会匹配,干杯,快乐学习