You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何通过htaccess将特定IP地址的请求重定向至其他站点?

问题分析与解决方案

你的配置核心问题是多RewriteCond默认采用AND逻辑,这意味着只有请求同时来自两个指定IP才会触发重定向,显然不符合需求。另外规则顺序也需要调整,确保IP判断优先执行。

正确配置代码

<IfModule mod_rewrite.c>
    RewriteEngine On
    RewriteBase /

    # 匹配指定IP,触发重定向
    RewriteCond %{REMOTE_ADDR} ^xxx\.xxx\.xxx\.xxx$ [OR]
    RewriteCond %{REMOTE_ADDR} ^xxx\.xxx\.xxx\.xxy$
    RewriteRule ^ https://example.com [L,R=302]

    # 其他IP请求,转发到index.php(排除已存在的文件/目录/软链接)
    RewriteRule ^index\.php$ - [L]
    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteCond %{REQUEST_FILENAME} !-d
    RewriteCond %{REQUEST_FILENAME} !-l
    RewriteRule ^ index.php [L]
</IfModule>

关键修改说明

  • OR逻辑连接IP条件:在第一个IP的RewriteCond末尾添加[OR],表示两个IP满足任意一个即可触发重定向。
  • IP规则前置:将IP重定向规则放在最前面,确保匹配到指定IP时直接执行重定向,不再处理后续规则。
  • 正则转义:IP中的.需要用\.转义,否则正则会将.识别为“任意字符”,导致错误匹配。
  • 明确重定向状态码:添加R=302表示临时重定向,若需永久重定向可改为R=301。

验证注意事项

  1. 确认服务器已启用mod_rewrite模块。
  2. 测试前清除浏览器缓存,避免旧重定向缓存干扰结果。
  3. 可通过服务器日志查看%{REMOTE_ADDR}输出,确认请求IP是否被正确识别。

内容的提问来源于stack exchange,提问作者BTSM

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.29 12:40:10