求助:实现无尾部斜杠的跨域名301重定向
解决.htaccess重定向后尾部自动加斜杠的问题
我来帮你搞定这个问题!你遇到的核心问题是Apache默认会给目录类请求自动添加尾部斜杠,再加上之前的规则可能没精准控制跳转地址,导致重定向后带了斜杠。下面是针对你的需求的完美解决方案:
步骤1:启用mod_rewrite并编写核心规则
在原域名(exampledomain.com)的.htaccess文件中添加以下规则:
# 启用重写引擎 RewriteEngine On # 匹配原域名(支持带www和不带www的情况) RewriteCond %{HTTP_HOST} ^(www\.)?exampledomain\.com$ [NC] # 将所有请求重定向到指定的无尾部斜杠地址 RewriteRule ^(.*)$ http://www.newdomain.com/123-content [L,R=301]
关键说明:
[NC]标记:忽略域名的大小写,确保Exampledomain.com这类写法也能被匹配到[L]标记:表示这是最后一条规则,匹配后不再执行后续规则[R=301]:表示永久重定向(如果只是临时测试,可以改成R=302)- 规则中直接指定了固定的无斜杠目标地址,没有引用原URL的路径内容,所以不会把原路径的斜杠带过去
额外处理:如果目标服务器仍自动加斜杠
如果目标域名(www.newdomain.com)的服务器默认会给/123-content添加尾部斜杠,你还需要在目标域名的.htaccess中添加以下规则,强制将带斜杠的地址跳转到无斜杠版本:
RewriteEngine On # 匹配带尾部斜杠的目标地址,并重定向到无斜杠版本 RewriteRule ^123-content/$ /123-content [L,R=301]
这样就能确保最终访问的地址始终是不带尾部斜杠的http://www.newdomain.com/123-content,符合你的访问要求。
内容的提问来源于stack exchange,提问作者Pat
相关产品推荐
相关产品推荐

