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

外部来源访问站点如何重定向至新路径且允许站内跳转访问旧站

实现方案

你之前的规则失效核心原因是没有排除新站自身路径的请求,同时来源匹配范围错误,会把旧站内部跳转的请求也豁免,不符合需求。你可以在public_html根目录的.htaccess文件中添加以下规则:

RewriteEngine On

# 排除新站目录本身的请求,避免重定向死循环
RewriteCond %{REQUEST_URI} !^/new(/.*)?$
# 仅豁免从新站点跳转过来的请求
RewriteCond %{HTTP_REFERER} !^https://example.com/new(/.*)?$
# 匹配所有未满足豁免条件的请求,临时重定向到新站
RewriteRule ^(.*)$ /new/$1 [L,R=302]

规则说明

  • 第一条重写条件过滤掉所有访问新站本身的请求,避免出现重定向死循环
  • 第二条重写条件仅放行从新站点页面跳转过来的访问请求,其他所有来源(直接输入地址、第三方站点跳转、搜索引擎蜘蛛等)的请求都会触发重定向
  • 测试阶段使用302临时重定向避免浏览器缓存规则,确认功能符合预期后可以把R=302换成R=301启用永久重定向

注意事项

  • 部分浏览器会给用户提供禁用HTTP_REFERER发送的功能,这类用户无法被识别来源,默认会被一直重定向到新站,无法访问旧站,属于正常的兼容边界
  • 新站页面引用旧站根目录的静态资源(图片、CSS、JS文件等)时,因为请求来源是新站地址,不会被重定向,可以正常加载

内容的提问来源于stack exchange,提问作者Adrian P.

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.27 22:39:01