Apache:RewriteCond重定向来自未知IP的请求

时间:2013-11-20 02:31:26

标签: php apache .htaccess mod-rewrite redirect

假设我的网站www.abcd.com是用Linux,Apache,PHP和Linux开发的。 MySQL堆栈。

我创建的网页www.abcd.com/redirect.php是为了重定向所有未经授权的用户。

如果要求网站www.abcd.com或其任何文件位于IP 180.11.34.1的子目录[例如:www.abcd.com/temp/images/aaa.js]中,则应将用户重新引导至www.abcd.com/redirect.php

是否可以通过提供IP范围进行重定向?例如:从180.11.34.1到180.11.34.123

是否可以重定向所有来自我的网络服务器php / cgi / js / css / image文件的请求;不是通过我的域名访问www.abcd.com/redirect.php?

1 个答案:

答案 0 :(得分:1)

  

是否可以通过提供IP范围进行重定向?例如:从180.11.34.1到180.11.34.123

排序。你可以为它制作一个正则表达式:

RewriteEngine On
RewriteCond %{REMOTE_ADDR} ^180\.11\.34\.([1-9]|[1-9][0-9]|1[0-1][0-9]|12[0-3])$ 
RewriteRule ^(.*)$ /redirect.php [L,R]
  

是否可以重定向所有来自我的网络服务器php / cgi / js / css / image文件的请求;不是来自我的域名,请访问www.abcd.com/redirect.php

您可以通过检查引用来执行此操作,但是,引用程序可能是欺骗性的,因此无法保证您将阻止所有内容:

RewriteEngine On
RewriteCond %{HTTP_REFERER} !^https?://(www\.)?abcd.com/ [NC]
RewriteRule \.(php|cgi|js|css|gif|png|jpe?g|ico)$ /redirect.php [L,NC,R]