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

如何通过htaccess规则移除URL中的重复域名部分?

解决URL中重复域名的.htaccess规则

刚好碰到过类似的需求!你要的是精准移除URL路径里重复出现的域名部分,而不是误删整个域名对吧?针对你给出的例子,我们可以写一套通用的规则,不用硬编码域名,适配带www和不带www的情况。

具体规则代码

把下面的代码放到网站根目录的.htaccess文件里:

RewriteEngine On

# 捕获当前请求的域名(适配带www和不带www的情况)
RewriteCond %{HTTP_HOST} ^(www\.)?(.+)$
# 移除路径中//域名/的重复部分
RewriteRule ^//%2/(.*)$ /$1 [R=301,L]

# 可选:如果还有可能出现单斜杠+域名的情况(比如/example.com/uploads/...),加上这条
RewriteRule ^/%2/(.*)$ /$1 [R=301,L]

规则解释

  • RewriteEngine On:开启URL重写功能,这是所有Rewrite规则的前提。
  • RewriteCond %{HTTP_HOST} ^(www\.)?(.+)$:捕获当前访问的域名,把不带www的核心域名存在%2变量里(比如访问www.example.com时%2是example.com,访问example.com时%2也是example.com)。
  • 第一条RewriteRule:专门匹配你例子里的//example.com/这种重复模式,把后面的文件路径$1保留,重写到正常的/$1路径,直接去掉前面重复的域名部分。
  • 第二条可选规则:如果你的网站还存在/example.com/uploads/这种单斜杠加域名的重复情况,加上这条就能一并处理。

注意事项

  • 测试阶段可以把R=301改成R=302(临时重定向),确认规则生效后再改回R=301(永久重定向,对SEO更友好)。
  • 确保你的服务器已经开启了mod_rewrite模块(Apache服务器默认一般是开启的,如果没开需要联系主机商开启)。
  • 规则要放在.htaccess的最前面,避免被其他规则干扰。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.29 08:56:26