.htaccess 重定向多个 IP 范围

.htaccess redirect for multiple IP ranges

我正在尝试重定向多个不同的 IP 地址,但与特定用户代理匹配的 IP 地址除外。到目前为止,我已经能够使用 1 个 IP 范围成功地做到这一点,例如:

RewriteCond %{REMOTE_ADDR} ^123\.123\.123\.[0-9]{1,3}$
RewriteCond %{HTTP_USER_AGENT} !^useragent$
RewriteRule ^(.*)$ http://www.redirecthere.com/ [L]

所以以上将 IP 123.123.123.x 重定向到 URL - 除非该 IP 具有此用户代理,在这种情况下不会发生重定向。

我实际上需要重定向其他几个 IP 范围以及这个。但是按照下面的方式这样做会破坏一切:

RewriteEngine on
RewriteCond %{REMOTE_ADDR} ^123\.123\.123\.[0-9]{1,3}$
RewriteCond %{REMOTE_ADDR} ^124\.124\.124\.[0-9]{1,3}$
RewriteCond %{HTTP_USER_AGENT} !^useragent$
RewriteRule ^(.*)$ http://www.redirecthere.com/ [L]

我做错了什么?我找不到任何重复的问题。

你只需要添加[OR]因为正常测试是"AND":

RewriteEngine on
RewriteCond %{REMOTE_ADDR} ^123\.123\.123\.[0-9]{1,3}$ [OR]
RewriteCond %{REMOTE_ADDR} ^125\.125\.125\.[0-9]{1,3}$ [OR]
#.....
RewriteCond %{REMOTE_ADDR} ^124\.124\.124\.[0-9]{1,3}$
RewriteCond %{HTTP_USER_AGENT} !^useragent$
RewriteRule ^(.*)$ http://www.redirecthere.com/ [L]