如何为WordPress迁移后的旧URL编写410状态码的.htaccess规则?
为旧WordPress URL添加410 Gone状态码的.htaccess规则
这些410重写规则需要放在RewriteEngine On之后、域名301重定向规则之前,保证优先级高于其他重写逻辑,这样旧URL会先被匹配返回410状态码。
批量匹配前缀URL的规则
针对带wp-content/、Get/、Download/、Download-category/前缀的旧URL,添加以下规则:
# 匹配旧WordPress前缀URL,返回410 Gone RewriteRule ^wp-content/ - [R=410,L] RewriteRule ^Get/ - [R=410,L] RewriteRule ^Download/ - [R=410,L] RewriteRule ^Download-category/ - [R=410,L]
单个URL的规则
如果有单独的旧URL需要返回410,按需添加类似规则(替换示例中的URL路径):
# 匹配单个旧URL,返回410 Gone RewriteRule ^old-post-slug/$ - [R=410,L] RewriteRule ^another-old-page.html$ - [R=410,L]
修改后的完整.htaccess代码
<IfModule mod_rewrite.c> <IfModule mod_negotiation.c> Options -Indexes </IfModule> RewriteEngine On # 旧WordPress URL返回410 Gone RewriteRule ^wp-content/ - [R=410,L] RewriteRule ^Get/ - [R=410,L] RewriteRule ^Download/ - [R=410,L] RewriteRule ^Download-category/ - [R=410,L] # 单个旧URL示例(按需取消注释并修改) # RewriteRule ^old-post-slug/$ - [R=410,L] # 域名301重定向 RewriteCond %{HTTP_HOST} !^website.com$ RewriteRule ^(.*)$ https://website.com/$1 [R=301,L] # 指向public目录 RewriteRule ^(.*)$ public/$1 [L] </IfModule> RewriteCond %{HTTP:Authorization} ^(.*) RewriteRule .* - [e=HTTP_AUTHORIZATION:%1]
补充说明
[R=410,L]中的R=410指定返回410 Gone状态码,L表示停止执行后续重写规则,避免冲突。- 规则生效后,登录Google搜索控制台,用URL检查工具针对这些旧URL提交重新索引请求,加快Google清理搜索结果中的无效条目。
- 添加规则前建议先测试,确保不会影响现有正常访问的URL。
内容的提问来源于stack exchange,提问作者igrafix TM
相关产品推荐
相关产品推荐

