PulseCMS站点如何通过.htaccess重写规则优化清理博客URL
PulseCMS 博客URL结构优化.htaccess配置方案
直接替换原有.htaccess中博客相关的重写规则即可,完整配置如下,完全匹配三点优化需求:
RewriteEngine On # 旧格式URL 301永久跳转至新规范路径 RewriteRule ^blog-([0-9]+)-(.*)$ /blog/$2 [L,R=301] # 递归清理URL中的特殊字符、连续冗余连字符 RewriteRule ^(blog)/([^,]*),(.*)$ /$1/$2-$3 [N,L] RewriteRule ^(blog)/(.+)-{2,}(.+)$ /$1/$2-$3 [N,L] # 剔除路径首尾多余连字符 RewriteRule ^(blog)/-+(.*?)-*$ /$1/$2 [L,R=301] # 适配新路径下的博客分页规则 RewriteRule ^blog/page-([0-9]+)$ ?page=$1&p=blog [L] # 新格式URL转发至CMS入口处理 RewriteRule ^blog/([^/]+)$ ?d=$1&p=blog [L] # 保留原有静态文件、目录直访规则 RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d RewriteRule ^(.*)$ index.php?p=$1 [L]
规则对应实现效果
- 层级路径调整:所有博客内容统一归入
/blog/路径下,形成符合语义的层级URL结构 - 数字ID自动移除:旧URL中
blog字段后跟随的数字ID段会在跳转时直接丢弃,不会出现在最终规范URL中 - 特殊字符自动清理:规则会递归替换URL中的逗号等非合规字符为连字符,将连续出现的多个连字符合并为单个,同时自动剔除路径首尾多余连字符,最终输出标准的短横线分隔slug格式
注意:配置上传后请先使用浏览器无痕模式测试,301为永久重定向,本地浏览器会缓存旧跳转规则,验证所有旧链接跳转正常、新链接可正常访问内容后再正式上线。
原有规则中RewriteRule ^blog-([^-]*)+? ?d=$1&p=blog [L]本身存在匹配逻辑缺陷,会把第一个横杠后的所有内容都识别为文章ID参数,新规则同步修复了该问题,PulseCMS可通过清理后的标题slug正常匹配对应文章。
内容的提问来源于stack exchange,提问作者Milos2504
相关产品推荐
相关产品推荐

