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

使用.htaccess实现目录重定向时遭遇重复内容及无限循环问题

子目录重定向与重复内容问题解决方案

需求梳理

  • 根域名(www.example.com)展示landing-page子目录内容
  • 访问www.example.com/landing-page时自动重定向到根域名,消除重复内容
  • 保留www.example.com/app路径的正常访问

修正后的.htaccess规则

RewriteEngine On

# 处理直接访问/landing-page的请求,重定向到根目录
RewriteCond %{THE_REQUEST} ^[A-Z]{3,9}\ /landing-page(/[^\s]*)?\ HTTP/
RewriteRule ^landing-page/(.*)$ /$1 [R=301,L]

# 将根目录及非指定路径请求转发到landing-page子目录
RewriteCond %{REQUEST_URI} !^/(landing-page|app)
RewriteRule ^(.*)$ /landing-page/$1 [NC,L]

规则说明

  • 第一条规则:通过%{THE_REQUEST}捕获用户实际发起的HTTP请求(内部转发的请求不会触发此条件),匹配所有直接访问/landing-page开头的路径,用301永久重定向到根域名对应的路径,比如/landing-page/contact会重定向到/contact,避免重复内容。
  • 第二条规则:排除landing-page(防止内部转发引发循环)和app目录,将其他所有请求转发到landing-page子目录,实现根域名展示landing-page内容的同时,保证/app路径正常访问。

原方案问题分析

  • 原RewriteRule仅实现了根目录到landing-page的转发,但未处理直接访问/landing-page的请求,导致重复内容。
  • 使用Redirect指令会触发循环:用户访问/landing-page被重定向到根目录,根目录又被RewriteRule转发到/landing-page,形成无限循环。而通过%{THE_REQUEST}区分外部请求和内部转发,可彻底避免这个问题。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.22 16:39:45