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

如何在.htaccess中让特定URL指向指定目录(已配置主目录重定向)

解决特定URL路径指向不同目录的.htaccess配置方案

没问题,我来帮你搞定这个需求。你已经有了将domain.com整体重定向到DIR1的规则,现在只需要在现有规则之前添加一条针对性的重写规则,就能让domain.com/aaa/bbb/files这个特定路径指向DIR2的内容,具体配置如下:

# 优先处理特定URL路径,映射到DIR2
RewriteCond %{HTTP_HOST} ^(www\.)?domain\.com$ [NC]
RewriteRule ^aaa/bbb/files(/.*)?$ /DIR2$1 [L]

# 原有域名整体指向DIR1的规则(修正了正则笔误)
RewriteCond %{HTTP_HOST} ^(www\.)?domain\.com$ [NC]
RewriteCond %{REQUEST_FILENAME} !/DIR1/
RewriteRule ^(.*)$ /DIR1/$1 [L]

关键说明:

  • 规则顺序很重要:把特定路径的规则放在最前面,因为mod_rewrite是从上到下匹配执行的,这样当访问domain.com/aaa/bbb/files(包括它的子路径,比如domain.com/aaa/bbb/files/doc.pdf)时,会优先触发这条规则,直接跳转到DIR2,不会再执行后面的DIR1重定向。
  • 正则修正:你原来的规则里RewriteRule ^(. )$是笔误,应该改成^(.*)$,不然正则表达式无法正确匹配所有请求路径。
  • [L]标记:这个标记表示当前规则匹配后就停止后续规则的执行,确保特定路径不会被原有规则覆盖。

如果你的aaa/bbb/files是服务器上真实存在的目录,而你希望不管这个目录是否存在都强制指向DIR2,那当前配置就足够了;如果需要仅当该路径不存在时才跳转,可以在特定规则前添加RewriteCond %{REQUEST_FILENAME} !-d和RewriteCond %{REQUEST_FILENAME} !-f来排除真实存在的文件/目录。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.15 06:47:32