htaccess 301重定向异常:指向新域名404子目录问题求助
解决.htaccess 301重定向时旧路径被附加的问题
问题原因
你使用的Redirect 301 / https://uniziktne.afrihub.com属于mod_alias模块的指令,它采用前缀匹配逻辑:当请求旧域名下的任意子路径(比如/unizik_tne),会自动把匹配前缀(/)之后的路径部分(unizik_tne)追加到目标URL末尾,最终导致旧路径被带到新域名下,触发404。
解决方案
方案1:使用mod_alias的精确匹配
替换原有规则为:
RedirectMatch 301 ^/(.*)$ https://uniziktne.afrihub.com/
RedirectMatch支持正则表达式,^/(.*)$匹配旧域名下所有路径,直接重定向到新域名根目录,不会附加任何原路径。
方案2:使用mod_rewrite(推荐)
如果服务器开启了mod_rewrite,用以下规则更灵活可控,将其放在.htaccess文件最顶部:
RewriteEngine On RewriteCond %{HTTP_HOST} ^afrihub\.com$ [NC] RewriteRule ^(.*)$ https://uniziktne.afrihub.com/ [R=301,L]
RewriteCond精准匹配旧域名afrihub.com(NC参数忽略大小写)RewriteRule将旧域名下所有路径直接重定向到新域名根目录,L表示终止后续规则执行,R=301标记永久重定向。
注意事项
- 测试前务必清空浏览器缓存,301重定向会被浏览器强缓存,可能导致测试结果偏差
- 确认服务器已启用对应模块(mod_alias或mod_rewrite),主流主机通常默认开启
内容的提问来源于stack exchange,提问作者Christopher Maduka
相关产品推荐
相关产品推荐

