用织梦做站的朋友会发现,百度从来不收录站里的tag标签页,一开始以为是中文链接的问题,但是在百度又中发现了有中文链接被收录的先例,那么该如何解决百度不收录tag标签的问题呢?
小编认为百度不收录织梦标签页面是因为织梦标签的url问题,织梦的标签页面url形式是“/tags.php?/标签名”,百度认为这些都是一个页面,所以只收录tags.php这个页面,其实我们可以用伪静态来解决这个问题,小编分析了织梦tag标签生成路径的文件,给大家提供一个参考方法,可以把tag标签伪装成静态文件链接,步骤如下:
举例:我们把 /tags.php?/织梦ok 伪静态为 /tag_织梦ok.html
第一步:修改相关文件
打开/include/taglib/tag.lib.php,找到大概87行
$row['link'] = $cfg_cmsurl."/tags.php?/".urlencode($row['keyword'])."/";
修改为
$row['link'] = $cfg_cmsurl."/tag_".urlencode($row['keyword']).".html";
第二步:配置伪静态规则
在根目录中增加规则文件,iis环境需要加载URL Rewrite模块(对应web.config文件),Apache环境需要加载mod_Rewrite模块(对应httpd.conf文件)
web.config写法:
<?xml version="1.0" encoding="UTF-8"?> <configuration> <system.webServer> <httpErrors> <remove statusCode="404" subStatusCode="-1" /><!--404规则--> <error statusCode="404" prefixLanguageFilePath="" path="/404.php" responseMode="ExecuteURL" /> </httpErrors> <rewrite> <rules> <rule name="tag"><!--tag标签规则 切记name值不能重复--> <match url="^tag_(.*).html$" /> <action type="Rewrite" url="tags.php?/{R:1}" /> </rule> </rules> </rewrite> </system.webServer> </configuration>
httpd.conf(.htaccess)写法:
RewriteEngine on RewriteRule ^tag_(.*).html tags.php?/$1