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

URL以/folder开头但不含指定子目录时的重定向配置求助

Apache URL重定向规则配置方案

你的需求完全可行,问题出在原来的规则匹配范围太广,导致路径重复拼接了。下面是修正后的通用规则:

# 筛选出以/folder/开头,但路径中不包含/folder/subfolder/的请求
RewriteCond %{REQUEST_URI} ^/folder/(?!subfolder/)
# 提取/folder/之后的部分,重定向到目标路径
RewriteRule ^/folder/(.*)$ /folder/subfolder/$1 [R=301,L]

规则说明:

  • RewriteCond %{REQUEST_URI} ^/folder/(?!subfolder/):用负向前瞻断言,精准匹配**以/folder/开头,但紧接着不是subfolder/**的请求,避免误匹配已经包含subfolder的路径。
  • RewriteRule ^/folder/(.*)$ /folder/subfolder/$1:提取/folder/后面的所有内容(比如请求/folder/page时,$1就是page),拼接到/folder/subfolder/后面,得到正确的目标路径。
  • [R=301,L]:R=301表示永久重定向(如果是临时重定向可以改成R=302),L表示执行完这条规则后停止后续规则处理,防止冲突。

为什么原来的规则失效?

你之前的RewriteRule ^(.*)$ /folder/subfolder/$1会把整个请求URI(比如/folder/page)作为$1,最终生成/folder/subfolder/folder/page,路径重复了/folder,自然不符合预期。

这个规则可以批量处理所有符合条件的页面,不需要逐个配置。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.15 15:55:27