环境:Windows Server 2003 +php5+mysql+WordPress
- SEO是网站生存的灵魂,SEO是细致入微工作,如何才能面面俱到是站长共同的话题。固定链接/永久链接是网站、分类及其他内容列表的永久URL,是SEO工作中不可或缺的非常重要一个环节。以至于对于很多开博的站长来说,选择博客系统时,能否生成静态页面俨然成了第一道关卡。安装完毕第一件事就是设置固定链接结构,但随之而后就认为可以一劳永逸了,恐怕会把此事抛于脑后,不再去接触。但是,亲爱的,你是否深入考虑过,你选择的固定链接结构是否是最的合适呢?
今天来探讨wordpress固定链接——设置个性化自己喜好的固定链接。wordpress日志的链接地址都是永久性不会变化的,链接地址一旦确定,在不做更改或删除情况下永远不变,这就是所谓的永久链接/固定链接。英文成为:Permalinks
一、WordPress的固定链接熟悉和初步配置
当你的WordPress程序安装好,初次使用时,默认的日志URL格式是:http://domain/?p=N,这个就是所谓的动态地址。今天咱们需要做的就是拿它开刀,让它变成我们喜欢,搜索引擎也喜欢的固定链接。很友好地,WordPress给你提供了三种固定链接外加自定义固定链接共四种。
- 日期和文章名:http://domain/index.php/2010/06/25/sample-post/
- 月份和文章名:http://domain/index.php/2010/06/sample-post/
- 数字:http://domain/index.php/archives/123
- 自定义结构:http://domain/index.php/archives/%post_id%
你所能使用的参数:
- %year%:是日志发布的年份,四位数字,如:2010;
- %monthnum%:是日志发布的月份,二位数字,如:06;
- %day%:日志发布是当月的第几天,2位数字,如:25;
- %hour%:日志发表的时间(小时),如15;
- %minute%:日志发表的时间(分钟),如43;
- %second%:日志发表的时间(秒),如33;
- %postname%:日志标题或日志别名;
- %category%:分类名称或分类别名;
- %tag%:标签名称或标签别名;
- %post_id%:是日志的唯一编号;
- %author%:作者名称;
好吧,如果你不知道这些参数如何使用,那我来告诉你。这些参数(注意包含两边的%)是方便你选择了自定义结构而“乱用”的。不错,用乱用这个词,并不过分,乱用的意思就是让你随意组合。但,我想你也不会糊涂的把日志的年月日时分秒分类坐着编号等等一股脑的放在固定链接里,组成一个超长的连接。我想,例如下面三则将会是主流。
- http://domain/年月日/日志标题
- http://domain/年月日/日志编号
- http://domain/分类/日志标题
上面的例子在自定义结构里如此设置:
- /%year%%monthnum%%day%/%postname%
- /%year%%monthnum%%day%/%post_id%
- /%category%/%post_id%
一切就这么简单。一切真这么简单?错了,当你真如此做的时候,会发现你的连接都打不开。你必须以该死的“/index.php/”作为开头,WordPress博客才会正常运行。于是上面你想自定义的固定连接不得不变成下面一个样子。
- http://domain/index.php/年月日/日志标题
- http://domain/index.php/年月日/日志编号
- http://domain/index.php/分类/日志标题
上面的例子在自定义结构里如此设置:
- /index.php/%year%%monthnum%%day%/%postname%
- /index.php/%year%%monthnum%%day%/%post_id%
- /index.php/%category%/%post_id%
该死的“/index.php/”,让我的自定义固定链接看起来像个傻瓜。有没有办法去掉?当你看到我这则博文的时候,就会知道,解决办法肯定会有,因为我就使用的“/%category%/%postname%/”格式。
二、WordPress的固定链接高级进阶
此步会让你去掉可恶的/index.php/。此解决办法是使用IIS的自定义404重定向,需要你的主机允许你添加自定义的404重定向,这个办法的好处是不用安装任何第三方的 mod_rewrite模块,也不用以/index.php/开头。
1、首先,把下面代码另存为404.php,用FTP软件二进制方式上传到你的网站根目录。
<?php
$qs = $_SERVER['QUERY_STRING'];
$qsu = mb_convert_encoding("$qs", "UTF-8", "UTF-8");
$pos = strrpos($qs, '://');
$pos = strpos($qs, '/', $pos + 4);
$_SERVER['REQUEST_URI'] = substr($qsu, $pos);
if (strpos($_SERVER['REQUEST_URI'], '?') > 0) {
$_SERVER['SCRIPT_NAME'] = $_SERVER['ORIG_PATH_INFO'] = substr($_SERVER['REQUEST_URI'], 0, strpos($_SERVER['REQUEST_URI'], '?'));
$_SERVER['QUERY_STRING'] = substr($_SERVER['REQUEST_URI'], strpos($_SERVER['REQUEST_URI'], '?') + 1);
} else {
$_SERVER['SCRIPT_NAME'] = $_SERVER['ORIG_PATH_INFO'] = $_SERVER['REQUEST_URI'];
$_SERVER['QUERY_STRING'] = '';
}
include("index.php");?>
2、在你的虚拟虚拟主机管理系统里,自定义404错误页面;我用的是星外虚拟主机管理系统,可以使用web目录中的404.php文件来自定义内容。此设置会修改404、404.2、404.3错误提示,并跳转到我们设置的404.php。我用的是星外虚拟主机管理系统,和你的管理界面可能不同。
“404 找不到文件或目录。 404.2 文件或目录无法找到:锁定策略禁止该请求。404.3 文件或目录无法找到:MIME 映射策略禁止该请求。”还有一个404.1是“文件或目录未找到:网站无法在所请求的端口访问。”这里不在讨论范围内。
消息类型:URL URL:/404.php
需要对404、404.2、404.3分别设置。
3、在WordPress后台管理,固定链接里,你就可以随心所欲的设置你的自定义固定链接了。
评论列表: