很多用PHPCMS v9搭建企业官网、行业资讯站的朋友都遇到过——明明内容原创、更新频率够,百度蜘蛛爬取量却上不去,内容页也总排在后面翻半天找不到。其实很大概率是phpcms路由规则设置没优化对:要么是原生动态链接太混乱,要么栏目目录层级超过3层,要么伪静态做了一半还有m=、contentid=这类冗余参数拖后腿。今天就拿普及率最高的PHPCMS v9.6.8为例,给大家拆解一套百度蜘蛛超喜欢的路由优化方案,从基础动态伪静态切换,到自定义栏目目录、内容页后缀,再到彻底清理无用参数,每一步都有可直接复制的操作细节。
第一步:先确保伪静态组件配置正确,别让伪静态变“假404”
不管是Apache还是Nginx环境,优化phpcms路由规则设置之前,第一件事就是确认伪静态模块有没有开启,并且在网站后台的“系统设置”→“站点设置”→“伪静态设置”里勾选“全站开启伪静态”的基础开关。这里说个新手容易踩的坑:后台伪静态规则模板别随便选默认以外的第三方,先拿Apache/Nginx各自的官方默认适配PHPCMS v9.6.8的规则测试,避免路径不匹配导致全站404。
比如Apache的.htaccess规则,直接把下面这段粘贴到网站根目录的.htaccess文件里就行(前提是Apache开启了mod_rewrite模块,允许.htaccess覆盖配置):
```apache
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.)$ index.php?m=content&c=index&a=init&rewrite=1&catdir=$1&%1
```
Apache环境小技巧
如果是虚拟主机,直接用CPanel或者宝塔面板的文件管理创建/修改.htaccess就行;如果是自己配置的独立服务器,记得在httpd.conf里给网站对应的DocumentRoot目录加上AllowOverride All的配置,重启Apache后生效。
第二步:自定义栏目目录、内容页后缀,做符合SEO的扁平化结构
很多PHPCMS v9默认的目录层级是“栏目父目录/子目录/子子目录/内容页.html”,最多能到5层,百度蜘蛛一般只爬取3层以内的页面,后面的很难触达。所以优化phpcms路由规则设置的核心就是把栏目扁平化,最多保留2级,同时给内容页加上.html、.htm这类搜索引擎友好的静态后缀,避免.php后缀被误认为是交互频繁的动态页面。
自定义路径的步骤在后台“扩展”→“URL规则管理”里操作,先新建一套“企业资讯站专属URL规则”,然后分别配置“栏目页”“列表页”“内容页”的规则:
- 栏目页:规则填{$catdir}/,生成路径选“静态”,这样一级栏目就是“/jiadian/”,二级栏目是“/jiadian/xiaomi/”,层级清晰
- 内容页:规则填{$catdir}/{$id}.html,这里的{$id}可以换成{$year}/{$month}/{$id}或者{$title},但新手先用{$id}最稳妥,不会出现特殊字符导致的404
选好规则后,记得在每个栏目的“修改栏目”→“SEO设置”里把“URL规则”切换成刚才新建的那套,然后去“生成”模块重新生成全站静态页。
第三步:彻底清理m=、contentid=这类冗余参数,提升页面权重集中度
原生PHPCMS v9即使开了伪静态,有时候翻页或者搜索内容页还会跳出带m=、contentid=、page=之外(page=可以保留,属于有用的翻页参数)的参数,这些参数会让搜索引擎认为是不同的页面,分散权重。这时候就要修改phpcms路由规则设置的核心代码,或者用Nginx/Apache的重写规则强制跳转。
比如用Apache重写规则清理m=参数的话,就在.htaccess文件里,伪静态规则前面加上这段:
```apache
RewriteCond %{QUERY_STRING} ^m=(.)$ [NC]
RewriteRule ^(.)$ /$1? [R=301,L]
```
这段规则的意思是,只要URL里有m=开头的查询参数,就301永久重定向到没有参数的路径,[R=301,L]里的L是Last的意思,后面的规则就不执行了。
现在做企业站或资讯站,SEO的细节越来越重要,phpcms路由规则设置虽然只是其中一个小环节,但做好了能直接降低蜘蛛的爬取成本,提升收录和排名的概率。尤其是刚上线的新站,一定要先把路由规则优化好再大规模更新内容,不然等收录了一堆动态链接再改,还得处理301跳转的问题,反而耽误时间。