如何将子域名下的文件通配重定向至根域名对应路径?
子域名文件重定向到根域名对应路径的解决方案
你的规则无效主要是匹配逻辑和写法存在问题,修正后的Apache重写规则如下:
RewriteEngine On RewriteCond %{HTTP_HOST} ^img\.example\.com$ [NC] RewriteRule ^example-directory/(.+)$ https://example.com/wp-content/uploads/$1 [L,R=301]
关键修正说明:
- 调整
HTTP_HOST匹配规则:用^img\.example\.com$精准匹配子域名,添加[NC]标记忽略大小写,避免因大小写差异导致匹配失败,比原规则的=写法兼容性更强。 - 合并路径匹配逻辑:直接在
RewriteRule中匹配^example-directory/(.+)$,将文件路径部分捕获为$1,无需额外的REQUEST_URI条件判断,简化规则同时避免逻辑冲突。 - 保证目标路径对应:用
$1引用捕获的文件名,确保子域名example-directory/下的文件能精准跳转到根域名wp-content/uploads/下的同名文件。
注意事项:
- 该规则必须放在img.example.com对应的根目录下的.htaccess文件中,不能放到主域名的.htaccess文件里。
- 确认服务器已启用
mod_rewrite模块,否则重写规则无法生效。 - 测试阶段建议先用
R=302临时重定向,确认所有路径跳转正确后再改为R=301永久重定向,防止浏览器缓存错误的重定向规则。
内容的提问来源于stack exchange,提问作者Paul Simpson
相关产品推荐
相关产品推荐

