如何简化.htaccess中的多条301重写规则?
可以简化,但需区分目标URL差异
你当前的4条规则可以合并,但要注意其中第二条规则的目标URL不带www,其余三条带www,分两种情况处理:
情况1:统一目标URL(推荐,避免域名权重分散)
如果可以把所有重定向目标统一为带www(或不带)的版本,可直接合并成一行规则:
RewriteRule ^(.*)/(thema|stichpunkt|author|2023)(.*)$ https://www.newurl.com [R=301,L]
解释:用(A|B|C|D)的正则语法匹配任意一个关键词(thema/stichpunkt/author/2023),只要URL包含其中任意一个路径片段,就触发重定向。
情况2:保留原目标URL的差异
如果必须保留第二条规则的不带www目标,可简化为两行规则:
# 匹配thema/author/2023,重定向到带www的域名 RewriteRule ^(.*)/(thema|author|2023)(.*)$ https://www.newurl.com [R=301,L] # 匹配stichpunkt,重定向到不带www的域名 RewriteRule ^(.*)/stichpunkt(.*)$ https://newurl.com [R=301,L]
注意事项
- 确保
.htaccess文件开头已开启重写引擎:RewriteEngine On - 301是永久重定向,配置后建议用浏览器隐私模式或在线测试工具验证,避免缓存旧规则影响结果
内容的提问来源于stack exchange,提问作者maw
相关产品推荐
相关产品推荐

