如何通过htaccess重写规则替换图片src中的错误域名前缀
可行的.htaccess配置方案
你可以直接替换原有.htaccess内容为以下配置,新增的规则会将所有指向artweb-it.ru的请求自动301重定向到artweb.su对应路径,同时保留原有WordPress伪静态规则的正常生效:
<IfModule mod_rewrite.c> RewriteEngine On RewriteBase / # 新增:artweb-it.ru 重定向到 artweb.su RewriteCond %{HTTP_HOST} ^artweb-it\.ru$ [NC] RewriteRule ^(.*)$ https://artweb.su/$1 [L,R=301] # 原有WordPress默认规则 RewriteRule ^index\.php$ - [L] RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d RewriteRule . /index.php [L] </IfModule>
配置说明
- 规则匹配逻辑:
RewriteCond %{HTTP_HOST} ^artweb-it\.ru$ [NC]会匹配所有访问域名为artweb-it.ru的请求,不区分大小写 - 重定向逻辑:
RewriteRule ^(.*)$ https://artweb.su/$1 [L,R=301]会把原请求的路径完整拼接到新域名后,比如原请求artweb-it.ru/wp-content/uploads/2018/10/block-02s.png会自动跳转到artweb.su/wp-content/uploads/2018/10/block-02s.png - 状态码说明:
R=301代表永久重定向,对搜索引擎友好,如果你需要先测试规则是否生效,可以先改成R=302临时重定向,避免浏览器缓存错误的重定向规则 - 如果你需要同时带www的域名也跳转,可以把匹配条件改成
RewriteCond %{HTTP_HOST} ^(www\.)?artweb-it\.ru$ [NC]即可同时匹配artweb-it.ru和www.artweb-it.ru
生效验证
- 配置保存后,清理浏览器缓存,直接访问原来的错误域名下的图片地址,确认是否自动跳转到正确域名的对应资源
- 如果规则不生效,需要确认主机的
mod_rewrite模块已开启,且.htaccess文件权限配置正确(一般设置为644即可)
内容的提问来源于stack exchange,提问作者stodgy
相关产品推荐
相关产品推荐

