如何将流量从一个IP地址重定向到一个页面?

时间:2017-01-05 18:52:34

标签: .htaccess

我想知道,如何将所有流量从某个IP地址重定向到一个指定页面,以便流量无法访问其他任何内容?

所以发现,我尝试了以下内容,但它没有成功 - 它没有改变任何东西。

Options +FollowSymlinks
RewriteEngine on
RewriteCond %{REMOTE_ADDR} = XXX.XXX.XXX.XXX
RewriteRule .* http://www.example.com/404.html

我已经在我自己的IP地址上测试了这个。

1 个答案:

答案 0 :(得分:0)

我终于弄清楚了正确的代码应该是什么:

RewriteCond %{REMOTE_ADDR} ^1\.1\.1\.1
RewriteCond %{REQUEST_URI} !/404.html$ [NC]
RewriteRule .* /404.html [R=302,L]

这基本上意味着:

  1. 第一行:检查地址是否与1.1.1.1(您要重定向的IP)相匹配
  2. 第二行:由于我们要将它们重定向到404.html,我们需要通过让他们访问404.html
  3. 来阻止无限循环
  4. 第三行:将其重定向到404.html
  5. 此外,我们可以添加:

    RewriteCond %{REQUEST_URI} !\.(jpe?g?|png|gif|css|js) [NC]
    

    这样他们就可以从服务器访问所有图像,样式和javascript文件。

    在许多主题中都讨论了是否使用REMOTE_ADDRREMOTE_HOST,并且几乎可以归结为这两个定义:

      

    REMOTE_ADDR 正在制作的远程主机的IP地址   请求。

         

    REMOTE_HOST 发出请求的主机的名称。   如果服务器没有此信息,则会设置REMOTE_ADDR   把它留空。