WORDPRESS博客站已经运行快一年了,在伪静态上一直很纠结,空间默认不支持伪静态,网上找了很多方法,用404错误页面来做伪静态,现在发现了问题了。google收录了,但百度不收录,因为百度在爬行页面的时候,文章链接都跳到了404页面,百度认为是错误页面,就不收录了。
为了做伪静态,让百度也收录,我终于不嫌麻烦,找空间商提供伪静态支持了。告诉空间商,我用的是wordpress程序,需要做伪静态。空间商的技术很快就帮忙搞定了。将Rewrite放到根目录,里面配置文件也有。之前我也在网上找 了伪静态规则的,我把httpd.ini放在根目录,好让技术知道伪静态规则是什么。
伪静态规则代码:
[ISAPI_Rewrite]
# 3600 = 1 hour
CacheClockRate 3600
RepeatLimit 32
# Protect httpd.ini and httpd.parse.errors files
# from accessing through HTTP
# Rules to ensure that normal content gets through
RewriteRule /software-files/(.*) /software-files/$1 [L]
RewriteRule /images/(.*) /images/$1 [L]
RewriteRule /sitemap.xml /sitemap.xml [L]
RewriteRule /favicon.ico /favicon.ico [L]
# For file-based wordpress content (i.e. theme), admin, etc.
RewriteRule /wp-(.*) /wp-$1 [L]
# For normal wordpress content, via index.php
RewriteRule ^/$ /index.php [L]
RewriteRule /(.*) /index.php/$1 [L]
把上面的规则代码复制到记事本里,改为httpd.ini,放到网站根目录。然后到网站后台设置固定链接。固定链接可以自定义。
官方提供了如下一些参数。
%year% 年份
%monthnum% 月份
%day% 日期
%hour% 小时
%minute% 分钟
%second% 秒
%postname% 文章名。
如文章名是“This Is A Great Post!”,
那么“this-is-a-great-post”就是url中的文章名。
%post_id% 文章的ID
%category% 目录
%author% 作者
我用的是文章的ID,%post_id%.html,如此设置,就是你看到的文章地址样式了。
伪静态配置好了,但还有问题哦。我们设置的文章标签通常是中文,但中文标签wordpress默认是不支持的,会跳到404页面去。要让其支持中文,还需要修改下程序文件。
“wp-include”目录下的“class-wp.php”文件。
第一步:
找到
$pathinfo = $_SERVER['PATH_INFO'];
修改为:
$pathinfo = mb_convert_encoding($_SERVER['PATH_INFO'], 'UTF-8', 'GBK');
第二步:
找到
$req_uri = $_SERVER['REQUEST_URI'];
修改为:
$req_uri = mb_convert_encoding($_SERVER['REQUEST_URI'], 'UTF-8', 'GBK');
如此修改,wordpress就支持中文的标签了。
是不是一下畅快多了?
注意:如果你的博客目录或根目录装有其他程序,上面伪静态的“httpd.ini”会导致把你的访问都转回博客的首页,从而导致不能访问和你博客同一目录或根目录的程序,如果有谁有更好的方法,求分享!