如何编写正确的.htaccess规则将带参数的404URL重定向到父级文章页
适配配置说明
你之前出现500错误多为规则顺序错误、语法不规范或标志位缺失导致,以下是适配你WordPress站点、固定链接结构的完整.htaccess配置,直接替换原有文件全部内容即可:
# BEGIN WordPress # The directives (lines) between "BEGIN WordPress" and "END WordPress" are # dynamically generated, and should only be modified via WordPress filters. # Any changes to the directives between these markers will be overwritten. <IfModule mod_rewrite.c> RewriteEngine On RewriteBase / # 自定义重定向规则:处理amp/utm_source参数导致的404问题 RewriteCond %{QUERY_STRING} (^|&)(amp|utm_source) [NC] RewriteRule ^(.*\.html)$ /$1? [R=301,L] # WordPress原生规则 RewriteRule .* - [E=HTTP_AUTHORIZATION:%{HTTP:Authorization}] RewriteRule ^index\.php$ - [L] RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d RewriteRule . /index.php [L] </IfModule> # END WordPress
规则说明
- 匹配所有查询参数中包含
amp、utm_source的请求,[NC]标识代表不区分参数大小写 - 仅对后缀为
.html的文章链接生效,重定向到移除所有查询参数的对应原生链接,末尾的?作用是清除原有请求参数 R=301为永久重定向,对SEO更友好,[L]标识代表匹配到当前规则后不再执行后续重写逻辑,避免规则冲突
注意事项
- 替换配置后先清空浏览器缓存再测试,避免301重定向的本地缓存影响测试结果
- 测试阶段可将
R=301改为R=302使用临时重定向,确认规则生效后再改回301 - 后续如果有其他第三方新增参数导致404,只需修改规则中
(amp|utm_source)部分,新增对应参数名即可,例如新增utm_medium参数则改为(amp|utm_source|utm_medium)
内容的提问来源于stack exchange,提问作者Britt Well
相关产品推荐
相关产品推荐

