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


Apache : RewriteCond to redirect request coming from unknown IP

假设我的网站www.abcd.com是用Linux、Apache、PHP&MySQL堆栈。

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

如果从IP 180.11.34.1在网站www.abcd.com或其子目录[Ex:www.abcd.com/temp/images/aaa.js]中的任何文件中提出请求,则应将用户重新定向到www.abcd.c.com/redirect.php

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

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

是否可以通过提供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]

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

你可以通过检查refer来做到这一点,然而,refer可能会被欺骗,所以不能保证你会阻止一切:

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]