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

.htaccess中RewriteCond无法放行指定IP的问题咨询

.htaccess IP限制配置问题分析与修复

你的配置存在两处潜在问题,导致指定IP访问仍被重定向:

1. 反向代理环境下IP识别错误

如果你的站点通过反向代理(如Nginx、Cloudflare)部署,%{REMOTE_ADDR}获取的是代理服务器的IP,而非你的真实客户端IP。此时即使你使用123.123.123.123访问,规则会判定你不在允许列表内,触发重定向。

2. 图片后缀匹配语法错误

原规则中jpe?g?多了一个问号,正确写法应为jpe?g(匹配jpg和jpeg格式),否则可能无法正确排除图片资源(虽不是你被重定向的直接原因,但会导致图片也被拦截)。


修正后的配置

情况一:站点使用反向代理

添加X-Forwarded-For头的判断,兼容代理环境获取真实IP:

SetEnvIf X-Forwarded-Proto https HTTPS=on
# 同时校验真实客户端IP(X-Forwarded-For)和直接访问IP(REMOTE_ADDR)
RewriteCond %{HTTP:X-Forwarded-For} !^123\.123\.123\.123
RewriteCond %{REMOTE_ADDR} !^123\.123\.123\.123
RewriteCond %{REQUEST_URI} !/dev_site_notice.html$ [NC]
RewriteCond %{REQUEST_URI} !\.(jpe?g|png|gif)$ [NC]
RewriteRule .* /dev_site_notice.html [R=302,L]

情况二:站点直接对外访问(无反向代理)

仅修正图片后缀的语法错误即可:

SetEnvIf X-Forwarded-Proto https HTTPS=on
RewriteCond %{REMOTE_ADDR} !^123\.123\.123\.123
RewriteCond %{REQUEST_URI} !/dev_site_notice.html$ [NC]
RewriteCond %{REQUEST_URI} !\.(jpe?g|png|gif)$ [NC]
RewriteRule .* /dev_site_notice.html [R=302,L]

验证步骤

  • 若使用PHP环境,可在页面中输出<?php echo $_SERVER['REMOTE_ADDR'] . '<br>' . $_SERVER['HTTP_X_FORWARDED_FOR']; ?>,确认服务器获取到的IP是否为你的真实客户端IP。
  • 测试前清空浏览器缓存,避免旧重定向规则的缓存干扰结果。

内容的提问来源于stack exchange,提问作者Joshua JJ S

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.31 16:15:57