.htaccess配置WordPress外部目录URL重定向不生效如何解决
问题原因及修复方案
核心失效原因
- 规则逻辑完全写反:你当前的规则是匹配带仓库名的访问路径后跳转到短路径,但你需要的是用户访问短路径时内部映射到带仓库名的真实路径,逻辑完全相反
- 路径拼写不匹配:你的真实目录名是
wordpress_externaldirectory(下划线连接),但规则里写的是wordpress-externaldirectory(横杠连接),完全无法匹配到目标路径 - 规则标志使用错误:
R=301是外部永久跳转标志,会将真实路径暴露到用户地址栏,完全不符合你隐藏仓库名的需求;且目标路径写为//$1多了前置斜杠,会被识别为协议相对路径,跳转逻辑异常 - (可选前置问题)如果修改后仍不生效,可检查是否Apache未开启
mod_rewrite模块,或者站点配置中AllowOverride参数未设置为All导致.htaccess未被读取
正确配置示例
RewriteEngine On # 核心规则:用户访问/lp/开头的路径时,内部映射到真实目录,地址栏不变 RewriteRule ^lp/(.*)$ /wordpress_externaldirectory/lp/$1 [L] # 可选补充:如果需要旧的带仓库名的路径自动跳转到新短路径,避免重复收录,可添加以下规则 RewriteRule ^wordpress_externaldirectory/lp/(.*)$ /lp/$1 [R=301,L]
测试注意事项
修改规则后先清理浏览器缓存,301跳转属于永久缓存,之前的错误规则可能被缓存导致测试结果不符合预期。
内容的提问来源于stack exchange,提问作者kappa
相关产品推荐
相关产品推荐

