Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/.htaccess/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Apache 是否在重写条件下匹配HTTP_主机?_Apache_.htaccess_Redirect_Mod Rewrite_Url Rewriting - Fatal编程技术网

Apache 是否在重写条件下匹配HTTP_主机?

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

我有两台服务器正在为我的应用程序运行

生产和分期如下

如果HTTP_主机与stage.sitedomain.com匹配,我需要执行一些重定向规则

如果URL为,则页面应重定向到

如果URL为,则页面应重定向到

我正在执行以下步骤

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,我可以从中看到两个主要的东西,一个是正则表达式没有正确使用,第二个是重写规则部分检查
^/
不正确,它不是从
/
开始匹配的,因此它在任何情况下都不会匹配,干杯,快乐学习