我将把一些来自特定IP地址的请求重定向到另一个站点。例如,如果请求来自xxx.xxx.xxx.xxx
或xxx.xxx.xxx.xxy
,我将重定向到https://example.com
,对于其他站点,我将显示我的index.php
。
所以我试着这样做,但这行不通。
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-l
RewriteCond %{REMOTE_ADDR} xxx.xxx.xxx.xxx
RewriteCond %{REMOTE_ADDR} xxx.xxx.xxx.xxy
RewriteRule ^ https://example.com [L,R]
</IfModule>
请帮帮我。
2条答案
按热度按时间vwkv1x7d1#
您可以在站点根目录.htaccess中使用此代码:
这里需要注意的重要事项是使用
[OR]
子句来匹配任何给予的IP地址,并使用锚+转义点来准确匹配IP。jhiyze9q2#
要解决这个问题,你需要使用"OR"操作符将两个RewriteCond语句合并成一个语句。下面是你的代码的更新版本:
为清楚起见:RewriteCond语句检查远程IP地址是否与"www.example.com"或"xxx.xxx.xxx.xxxy"匹配。xxx.xxx.xxx.xxx" or "xxx.xxx.xxx.xxy".
正则表达式模式括在括号中,"OR"运算符用于分隔两个IP地址值。
"NC"标志用于使IP地址模式不区分大小写。
因此,如果条件为真,则应用第一个RewriteRule以重定向到"www.example.com",并且如果条件为假,则应用第二个RewriteRule以显示"index.php"文件。https://example.com". and if the condition is false, the second RewriteRule is applied to show the "index.php" file.