【发布时间】:2020-05-07 06:18:12
【问题描述】:
我想将除我所在国家/地区的 IP 之外的所有 IP 重定向到子文件夹。这就是我想出的。
RewriteEngine on
RewriteCond expr "-R '217.197.32.0/20'" [OR]
RewriteCond expr "-R '217.197.144.0/20'" [OR]
RewriteCond expr "-R '217.198.112.0/20'"
RewriteCond %{REQUEST_URI} !^/subfolder/ [NC]
RewriteRule ^(.*)$ http://example.com/subfolder/$1 [R,L]
(这只是IP列表的最后3行。)
它确实重定向,但不正确。如果您是外国人,您将保留在 root 中,但如果您的 IP 匹配,您将被重定向到子文件夹。
有没有办法否定它?我尝试RewriteCond expr "! -R '217.197.32.0/20'" [OR] 将! 添加到每个RewriteCond 行,但也没有运气。
【问题讨论】:
-
这可能是最简单的,如果你只是在你的 IP 检查条件之后插入一个 RewriteRule,它不会做任何替换(
-作为“目标”),并使用Sflag跳过下一条规则。这样,您就不需要否定您的 IP 匹配逻辑。
标签: apache .htaccess redirect mod-rewrite ip