如何通过.htaccess为所有博客slug添加“new-”前缀
.htaccess实现博客slug统一添加
new-前缀重定向 配置说明
将下面的规则写入网站根目录的.htaccess文件,即可实现访问https://www.example.com/blog/post-one这类旧地址时,自动跳转到https://www.example.com/blog/new-post-one对应新地址的效果,规则自带防循环判断,不会出现重复跳转问题。
完整规则代码
RewriteEngine On # 匹配/blog路径下未带new-前缀的文章slug,执行永久重定向 RewriteRule ^blog/(?!new-)(.*)$ /blog/new-$1 [L,R=301]
规则解释
- 规则生效前提是服务器已开启Apache的
mod_rewrite模块,绝大多数虚拟主机默认都会开启该模块 (?!new-)是负向预查匹配逻辑,会自动跳过已经带new-前缀的地址,从根源避免重定向死循环R=301标记表示这是永久重定向,会将旧地址的搜索引擎权重传递到新地址,不影响站点SEOL标记表示匹配到当前规则后立即停止执行后续重写逻辑,避免和其他规则产生冲突
注意事项
- 规则上传后建议先清空浏览器缓存再测试,301永久重定向会被浏览器本地强缓存,缓存未清时可能看不到最新效果
- 如果你的博客路径不是根目录下的
/blog,只需要对应修改规则里的路径匹配字段即可 - 规则会自动拦截已经带
new-前缀的地址,不会出现重复叠加前缀的问题
内容的提问来源于stack exchange,提问作者Rashed Raju
相关产品推荐
相关产品推荐

