Apache 了解htaccess更改为何起作用
我有两个域指向我的服务器。htaccess基本上是这样的:Apache 了解htaccess更改为何起作用,apache,.htaccess,mod-rewrite,Apache,.htaccess,Mod Rewrite,我有两个域指向我的服务器。htaccess基本上是这样的: RewriteCond %{HTTP_HOST} (www\.)?parkeddomain\.net [NC] RewriteRule ^page1\.html$ https://www.newsite.net/page1/ [L,R=301,NC] RewriteRule ^page2\.html$ https://www.newsite.net/page2/ [L,R=301,NC] 我也想重定向主页。所以我在同一个条件下使用了列
RewriteCond %{HTTP_HOST} (www\.)?parkeddomain\.net [NC]
RewriteRule ^page1\.html$ https://www.newsite.net/page1/ [L,R=301,NC]
RewriteRule ^page2\.html$ https://www.newsite.net/page2/ [L,R=301,NC]
我也想重定向主页。所以我在同一个条件下使用了列表中的这两条规则:
RewriteRule ^$ https://www.newsite.net [L,R=301,NC]
RewriteRule ^/$ https://www.newsite.net [L,R=301,NC]
当我在该条件下(仅指定一个域)将这两条规则添加到重写规则列表的末尾时,它也在转发我的另一个域,显然完全忽略了重写条件
但只要将这两条规则移到重写规则列表的顶部,它就可以按我的意愿工作(例如不转发我的其他域)
为什么会这样
提前谢谢。我只是想知道为什么会这样。我使用的唯一其他标志是指向带有锚链接的链接(例如)的两个重定向上的“NE”。
RewriteCond
仅适用于文件中的下一个RewriteRule
。因此,如果在RewriteCond
之后有4个RewriteRule
,则只有第一个受其影响
说
一个或多个RewriteCond可以位于RewriteRule指令之前
您可以将RewriteCond
与[和](隐式)或[或]组合使用。但不是重写规则
在同一链接中,它们显示了一个示例:
RewriteCond "%{HTTP_USER_AGENT}" "(iPhone|Blackberry|Android)"
RewriteRule "^/$" "/homepage.mobile.html" [L]
RewriteRule "^/$" "/homepage.std.html" [L]
如果是手机,请转到手机页面,否则请转到标准页面。RewriteCond
仅适用于第一个。否则,在这种情况下,所有用户都会看到移动页面
仅供参考:如果您在单独的VirtualHost中拆分域,您可以在不影响另一个域的情况下操纵一个域的配置。它为您进行拆分,因此您甚至不再需要倒换秒。出于某种原因,我认为所有重写规则直到空行都将遵守上述重写秒。。。并感谢虚拟的建议。谢谢你的详尽回答,伙计。干杯