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

如何用.htaccess实现含指定字符串的URL重定向并保留路径参数

解决URL重定向:移除路径中的特定字符串并跳转到子域名

没问题,这在Apache的.htaccess文件里用mod_rewrite模块就能轻松实现。以下是针对你需求的完整配置,我会逐行解释清楚:

# 开启URL重写引擎
RewriteEngine On

# 匹配包含/foo/的路径,重定向到子域名并移除/foo/部分
RewriteRule ^foo/(.*)$ http://sub.example.com/$1 [R=301,L]

规则详解:

  • RewriteEngine On:必须先开启Apache的重写引擎,否则所有重写规则都不会生效。
  • ^foo/(.*)$:这是匹配规则,意思是:
    • ^:匹配URL路径的起始位置
    • foo/:精确匹配路径开头的/foo/部分(注意这里的^已经对应路径的开头,所以不需要写前面的/)
    • (.*):捕获foo/之后的所有内容(包括后续的子路径、文件名等),这个捕获的内容会用$1来引用
  • http://sub.example.com/$1:这是目标URL,把原域名替换成sub.example.com,然后拼接上刚才捕获的$1内容(也就是移除/foo/之后的剩余路径)
  • [R=301,L]:这是规则的标记:
    • R=301:表示这是永久重定向(如果只是临时测试,可以换成R=302临时重定向),搜索引擎会更新索引到新URL
    • L:表示这是最后一条规则,匹配到之后就停止处理后续的重写规则,避免冲突

效果验证:

当用户访问http://example.com/foo/bar/123/456.jpg时,会自动跳转到http://sub.example.com/bar/123/456.jpg,完全符合你的需求。

注意事项:

  • 确保你的Apache服务器已经启用了mod_rewrite模块(大部分主流主机默认都开启了,如果不确定可以联系主机商)
  • 确保服务器的虚拟主机配置中允许.htaccess生效,需要设置AllowOverride All(如果是自己搭建的服务器,要检查Apache的站点配置文件)
  • 如果你的网站使用HTTPS,记得把目标URL里的http换成https

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.27 07:15:11