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

借助.htaccess将二级域名作为主域名缺失资源的备选地址

问题原因

你的自定义重定向规则失效的核心原因是规则顺序错误:

  • WordPress的rewrite规则中包含[L]标志,该标志会让Apache执行完当前规则后立即终止后续所有规则的处理。
  • 当请求/subfolder/下不存在的文件时,会匹配WordPress规则里的RewriteCond %{REQUEST_FILENAME} !-f和!-d条件,随即被转发到index.php,同时终止后续规则运行,导致你的自定义重定向完全没机会触发。
解决方法

将自定义重定向规则移到WordPress规则块的前面,具体位置在HTTPS强制跳转规则之后、# BEGIN WordPress之前。同时可添加QSA标志确保查询字符串被正确传递(可选,但更稳妥)。

修改后的完整.htaccess代码如下:

# BEGIN LSCACHE
# END LSCACHE
# BEGIN NON_LSCACHE
# END NON_LSCACHE
RewriteEngine on
RewriteCond %{HTTPS} !=on
RewriteRule .* https://%{HTTP_HOST}%{REQUEST_URI} [R=301,L]

# 自定义重定向规则 - 移至WordPress规则前
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^subfolder/(.*)$ https://secondary.domain/$1 [R=301,L,QSA]

# BEGIN WordPress
# Les directives (lignes) entre « BEGIN WordPress » et « END WordPress » sont générées
# dynamiquement, et doivent être modifiées uniquement via les filtres WordPress.
# Toute modification des directives situées entre ces marqueurs sera surchargée.
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteRule .* - [E=HTTP_AUTHORIZATION:%{HTTP:Authorization}]
RewriteBase /
RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
</IfModule>

# END WordPress
额外说明
  • QSA标志的作用是确保原请求的查询字符串(比如示例中的?1678369663)被附加到重定向后的URL中,完全匹配你的需求场景。
  • 测试前建议清除浏览器缓存,因为301重定向会被浏览器缓存,可能导致测试结果不准确。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.28 12:35:01