由wp固定链接,引申出服务器Rewrite设置
首先说下我的服务器环境,Win2003独立主机+APMServ5.2.0,湖工大在线的实验室服务器,专门用来为内部成员测试程序和架设个人网站。
接触wp比较早,但许多细节没来的及仔细研究。今天架设好博客设置固定链接时,发现可以自定义文章链接结构,应该就是传说中的伪静态,话说这样可以提高自己博客对搜索引擎的友好程度,那就研究下。
WordPress官方列出的部分可以使用的固定链接基本参数:
%year% 基于文章发布年份,比如2009;
%monthnum% 基于文章发布月份,比如11;
%day% 基于文章发布当日,比如05;
%hour% 基于文章发布小时数,比如15;
%minute% 基于文章发布分钟数,比如43;
%second% 基于文章发布秒数,比如45;
%postname% 基于文章的postname,其值为撰写时指定的缩略名,不指定缩略名时是文章标题;
%post_id% 基于文章post_id,比如12;
%category% 基于文章分类,子分类会处理成“分类/子分类”这种形式;
%author% 基于文章作者名。
将上述参数进行组合,即可得到wordpress的固定链接形式,网上常见的几种设置方法:
1、/%year%/%monthnum%/%day%/%postname%/
2、/%year%/%monthnum%/%postname%/
3、/%year%/%monthnum%/%day%/%postname%.html
4、/%year%/%monthnum%/%postname%.html
5、/%category%/%postname%.html
6、/%post_id%.html
诸如此类,可以自由定义。
中文推荐采用 /html/y%year%/%post_id%.html ,本博客就用的这种方式。如果不怕麻烦愿意为每篇文章写一个英语的post slug,建议采用这样的格式:/html/y%year%/%post_id%_%postname%.html。
当我按照上述方式设置好固定链接时,返回前台发现所有的文章都打不开,才考虑到Win2003主机使用APMServ5.2.0搭建PHP环境后,默认的Rewrite重写URL模块是没开启的,WordPress只能使用默认格式,即http://www.nnxq.net/?p=123这样的,要想变成其他的格式,必须开启Rewrite,不然访问不了。马上百度解决问题的方法,在一万年同学的博客里找到一篇文章,大体内容如下:
在APMServ环境下里面,影响这个功能的有三个地方:
1、全局的httpd.conf,影响整个服务器,位于/Apache/conf,检查rewrite_module模块前面有没有被#注释掉;
2、局部的vhost.conf,影响当前虚拟主机,位于/Apache/conf /apmserv,对应的虚拟主机的AllowOverride后面如果是None(默认值),就不能复写,得修改成AllowOverride Options FileInfo;
3、目录下的.htaccess文件,影响当前目录,RewriteEngine必须是On,这个一般没问题,是具体程序(如WordPress设置的)。
要记住的是如果用APMServ添加新的虚拟主机,他都会把配置RewriteEngine改成默认。所以添加新虚拟主机的时候,记得先备份你的 Rewrite。



