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

Cloudflare环境下首页RewriteRule不生效:{REQUEST_URI}问题求助

首页重定向失效的解决方案

问题根源

Apache的mod_dir模块会优先处理首页请求(自动将/映射到index.php等默认首页文件),导致你的Rewrite规则在内部重写后才执行,错过了触发时机。另外原规则中HTTP_HOST的匹配缺少转义,可能存在误匹配风险。

修正后的.htaccess配置

替换现有规则为:

# 墨西哥用户重定向到.mx域名
RewriteCond %{HTTP:CF-IPCountry} ^MX$
RewriteCond %{HTTP_HOST} !\.mx$
RewriteRule ^(.*)$ http://domain.mx/$1 [R=301,L,QSA]

# 加拿大用户重定向到.ca域名
RewriteCond %{HTTP:CF-IPCountry} ^CA$
RewriteCond %{HTTP_HOST} !\.ca$
RewriteRule ^(.*)$ http://domain.ca/$1 [R=301,L,QSA]

核心修改说明

  • 用^(.*)$替代原规则的^,通过捕获组匹配所有路径(包括空的首页路径),再用$1拼接目标URL,避免%{REQUEST_URI}受mod_dir内部重写的影响
  • 给HTTP_HOST匹配规则中的.加上转义符\,确保仅匹配以.mx/.ca结尾的域名,避免误匹配类似amx.com的域名
  • 目标域名后添加/再拼接$1,保证首页请求会正确重定向到domain.mx/,符合URL规范

测试注意事项

  • 测试前务必清除浏览器缓存,301重定向会被浏览器持久缓存
  • 确认Cloudflare的CF-IPCountry请求头已正确传递到服务器(可通过查看服务器日志或phpinfo验证)
  • 将这些重定向规则放在所有其他Rewrite规则的最顶部,防止被其他规则提前拦截

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.25 22:45:12