希望我能很好地解释这一点!
我有一些用于 Apache 下的站点的 RewriteRules,用于将用户重定向到不同服务器上的相同页面。有两个例外 - 我需要通过 2 个 IP 地址来访问原始服务器,并且我不希望规则适用于特定路径。这是我目前的规则集:
RewriteCond %{REMOTE_HOST} !^10\.10\.10\.1(0|1)$
RewriteRule ^page/old/url/1$ http://www.site.com/new/url/1 [R=301,L]
# If the user is trying to get to /admin, let it past by skipping the next rewriterule
RewriteCond %{REQUEST_URI} ^/admin(|.*)$
RewriteRule ^.*$ - [S=1]
# Catch-all to send any "un-mapped" pages to the homepage
RewriteCond %{REMOTE_HOST} !^10\.10\.10\.1(0|1)$
RewriteRule ^ http://www.site.com/homepage [R=301,L]
# Other rules follow, but no redirections
因此,我希望 htaccess 将除 2 个 IP 地址之外的所有用户重定向到新站点位置。不过,我想确保任何人都可以访问/admin。然后有一个包罗万象的规则来挑选任何没有被特别重定向的页面。
似乎 REQUEST_URI 行不匹配,或者跳过规则不起作用。我有什么明显的遗漏吗?