如何从 htaccess 域重定向中排除 IP

如何从 htaccess 域重定向中排除 IP

我正在尝试编写自定义重定向规则,以便在两个具有完全相同站点的域上进行一些测试。我使用的代码是:

  RewriteEngine on
  RewriteCond %{REMOTE_ADDR} !^1\.2\.3\.4$
  RewriteCond %{HTTP_HOST} ^.*site1.com [NC]
  RewriteRule ^(.*)$ http://www.site2.com/$1 [R=301,L]

我想要的是将对 site1 的所有请求(来自 IP 地址 1.2.3.4 的请求除外)重定向到 site2。但目前来自该 IP 的请求也被重定向到 site2。

我是否遗漏了设置中的某些内容?

(注意:两个域名都在同一个共享主机账户上)

编辑:我也尝试过:

RewriteEngine on
  RewriteCond %{REMOTE_ADDR} !^my_ip$ [OR]
  RewriteCond %{REMOTE_ADDR} !^server_ip$
  RewriteCond %{HTTP_HOST} ^.*site1 [NC]
  RewriteRule ^(.*)$ http://site2/$1 [R=301,L]

RewriteEngine on
  RewriteCond %{REMOTE_ADDR} !=my_ip [OR]
  RewriteCond %{REMOTE_ADDR} !=server_ip
  RewriteCond %{HTTP_HOST} ^.*site1 [NC]
  RewriteRule ^(.*)$ http://site2/$1 [R=301,L]

RewriteEngine on
  RewriteCond %{REMOTE_ADDR} ^my_ip$ [OR]
  RewriteCond %{REMOTE_ADDR} ^server_ip$
  RewriteRule ^(.*)$ http://site1/$1 [L]

  RewriteCond %{HTTP_HOST} ^.*site1 [NC]
  RewriteRule ^(.*)$ http://site2/$1 [R=301,L]

答案1

这尚未测试,但可以尝试一下 remote_addr 部分

RewriteCond %{REMOTE_ADDR} !=1.2.3.4

相关内容