.htaccess RewriteRule规则测试通过但服务器重定向异常求助
问题描述
需要将链接“http://tkrn.io/u/tkrn/1337test.exe”重定向至“http://files.tkrn.io/tkrn/1337test.exe”,使用的规则如下:
RewriteEngine On RewriteRule ^u\/(.*)$ http://files.tkrn.io/$1 [R=301,L]该规则在htaccess测试工具中通过了单元测试,但部署到服务器后重定向异常,实际跳转到了“http://files.tkrn.io/u/tkrn/1337test.exe”,请求技术帮助。
解决方案
你的重定向异常是因为缺少RewriteBase配置,或者.htaccess文件位置不正确,导致路径匹配逻辑出现偏差。试试以下修正后的规则:
RewriteEngine On RewriteBase / RewriteRule ^u/(.*)$ http://files.tkrn.io/$1 [R=301,L,NC]
关键排查点
- 检查Apache站点配置是否开启了
AllowOverride All,否则.htaccess中的规则不会生效 - 确认.htaccess文件放置在站点根目录下,而非
u/子目录中 - 测试前务必清空浏览器缓存,301重定向会被浏览器持久缓存,可能导致旧规则的缓存结果干扰测试
内容的提问来源于stack exchange,提问作者tkrn
相关产品推荐
相关产品推荐

