admin 管理员组

文章数量: 887021


2024年1月23日发(作者:爬虫scrapy教程)

WordPress固定链接设置方法

2010-05-13 06:39

固定链接其实就是修改 WordPress 目录、页面或者帖子的URL链接形式,修改这个的好处,一个是地址更好识别,如果有一定规律的话,用户体验会非常好,其次就是SEO优化,修改之后的静态地址比动态地址更容易让搜索引擎接受,从而更快的提高我们博客的排名,用更短的时间让更多人知道你的博客。由此可见,固定链接在博客中的重要性。对于wordpress 用户而言,就很有必要掌握一些固定连接的设置参数和技巧。

永久链接设置参数:

参数按照WordPress官方文档列表如下:

1. %year%

基于文章发布年份,比如2007;

2. %monthnum%

基于文章发布月份,比如05;

3. %day%

基于文章发布当日,比如28;

4. %hour%

基于文章发布小时数,比如15;

5. %minute%

基于文章发布分钟数,比如43;

6. %second%

基于文章发布秒数,比如33;

7. %postname%

基于文章的postname,其值为撰写时指定的缩略名,不指定缩略名时是文章标题;

8. %post_id%

基于文章post_id,比如423;

9. %category%

基于文章分类,子分类会处理成“分类/子分类”这种形式;

10. %author%

基于文章作者名。

将上述参数进行组合,即可得到wordpress的固定链接形式。

网上常见的几种设置方法:

* /%year%/%monthnum%/%day%/%postname%/

* /%year%/%monthnum%/%postname%/

* /%year%/%monthnum%/%day%/%postname%.html

* /%year%/%monthnum%/%postname%.html

* /%category%/%postname%.html

*/%postname%.html(推荐形式,本站用的就是这种形式)

* /%post_id%.html

永久链接设置原则:

一、不要让日期出现在固定连接链接里面

这基于两个方面的考虑。一是如果数字出现在固定链接里面,等于提醒搜索引擎,这是很旧的内容了,没必要再爬一遍了。另外一个原因是,假如你要修改文章的日期重新发布的话,链接地址就变了,也就是意味着你的反向链接,PR 等等都没有了。

二、不要让分类的链接出现在固定链接里面

这一点是很多人都会忽略的地方。让分类出现在固定链接里面有两个缺陷:一是一篇文章如果选择了多个分类的话,则会出现多个链接地址,这很容易造成因为重复内容而被搜索引擎惩罚;二是有可能会造成关键词堆砌而被搜索引擎惩罚。

三、链接不宜过深

经常看到很多wordpress 朋友的固定链接是年/月/日/分类名/文章名。但是这种过于深的固定链接对搜索引擎是非常不友好的。

四、不要让中文字符出现在固定链接里面

虽然现在的搜索引擎已经能识别URL地址里面的中文字符,但无论是从美观上,还是从wordpress 优化的角度来看,都是非常差的。

永久链接设置方法:

只要主机支持自定义404页面,无需安装插件,就能让Win主机像Linux 那样,方便使用WordPress的固定链接为静态化地址格式。

$qs = $_SERVER['QUERY_STRING'];

$_SERVER['REQUEST_URI'] = substr($qs, strpos($qs, ‘:80′)+3);

$_SERVER['PATH_INFO'] = $_SERVER['REQUEST_URI'];

include(‘’);

?>

设置固定链接(Permalink)伪静态步骤:

1. 将以上代码保存为 ,并上传至主机根目录。

2. 设置 404 自定义错误页为 .

3. 进入 WordPress 控制面板,设置(Options)- 固定链接(Permalinks),选择固定链接格式。如果觉得上面新建404页面太麻烦了!那我推荐一个插件!就是Permalinks

Migration Plugin(进入后台搜索插件就有)

Permalinks Migration Plugin的主要原理是利用“301转向”来实现既不丢失原有的链接,同时又让读者和搜索引擎知道,你已经修改了固定链接的效果,让他们尽快更新链接。

如果是个人服务器的话,如IIS+PHP这种类型的,就去网上下载一个Rewrite,然后用IIS加载下就可以了,相信用IIS的人应该明白是什么意思,如果不明白的话可以在下面留言,我会进行解答!

此篇文章有一部分内容取材于网络。

WordPress 固定链接怎样设置最好?这是很多WP新手比较困惑的问题,这里讲一下我的一点经验:

(1)考虑到搜索引擎优化,最好 .html 结尾

(2)链接长度考虑,可以使用 %post_id%.html

(3)搜索引擎优化考虑,使用%postname%.html

或 %category%/%postname%.html,但这种方法会导致链接长度过长,解决方法是:为每一篇文章取个别名,这样就可以用别名访问了。注意:“别名”默认是不显示在“添加新文章”界面的,需要在这个页面右上角的“显示选项”里,勾选这一项。

我的固定链接就设置成了:%postname%.html,然后在发布每一篇文章时起了个别名。

关于修改固定链接后不能访问文章问题,或者访问时提示404错误:

如果你的Apache、PHP、Mysql系统架构是自己配置的,或使用的某些安装包,可能会有这个问题,本人曾经遇到过,用第五条解决,具体如下:

(1)Apache中的rewrite模块没有开启,去除这一行前面的#号就可以了

LoadModule rewrite_module modules/mod_

(2)AllowOverride Not Enabled

服务器可能没打开AllowOverride。如果的AllowOverride设置的是None,那.htaccess将被忽略。正确的设置:

Options FollowSymLinks

AllowOverride All

也需要在DocumentRoot打开AllowOverride:

# „ other directives„

AllowOverride All

注意,以上修改完成后,要重启Apache才能生效。

固定链接的其它知识:

1. 首先介绍下,固定链接。

固定链接是你个人博客里的文章、分类以及其他页面的固定链接地址。如果博客的固定链接变化,会造成其他人通过之前的链接地址来浏览博客时出错,所以每篇博客的链接地址都应该固定,而且永久不改———这也是固定链接名字的由来。

固定链接的类型:目前共有三种基本的类型:

(1)默认:/?p=N N是文章ID

(2)mod_rewrite: “漂亮的链接”

使用mod_rewrite或lighttpd可以生成更好看的链接地址(查看 漂亮的链接),有各种个样的链接格式,最常见、最通用的格式如下

/category/post-name/

/year/month/day/post-name

(3)PATHINFO: “比较好的链接”

PATHINFO类型的链接地址和mod_rewrite类型的地址看起来很像,唯一的区别是在前面多了/,如下:

//yyyy/mm/dd/post-name/除此之外,和mod_rewrite类型的地址一样,也具有同样的可配置性。任何mod_rewrite链接地址可以做的事情,PATHINFO也可以。

2. 选择你的固定链接结构

在设置 → 固定链接,可以选择默认格式,也可以使用结构标签在自定义结构的输入框里输入你想要的格式。如果想激活PATHINFO类型的链接地址,只要将地址以/开头。

确保以%post_id%或%postname%结尾(如/%year%/%monthnum%/%day%/%postname%/),以便每个地址对应唯一的一篇博客。

出于性能上的考量,不推荐以博客类型、博客标签、博客作者、博客标题作为固定链接地址的开头这些都是纯文本的属性(field),使用它们作为链接的开头,WordPress需要更多的时间区分文章(Post)地址和页面(Page)地址,而且为了区分还要在数据库里存储额外的信息,带来不必要的开销。推荐使用数字的属性(field)作为链接的开头,如年份或文章ID。

%year%

文章发表的年份,四位数,如 2004

%monthnum%

月份,如 05

%day%

天,如 28

%hour%

小时,如 15

%minute%

分钟,如 43

%second%

秒,如 33

%postname%

文章标题的别名 (编辑文章/页面时的别名栏)。对于文章标题为 “This Is A

Great Post!” 的%postname%是this-is-a-great-post(查看 仅仅使

用 %postname%)。 出于性能原因,强烈不建议使用%postname%作为链接地址的开头。 *** 注 – 从WordPress 2.0开始这条建议可以无视了。

%post_id%

文章的唯一ID,如 423

%category%

分类的别名 (新建/编辑分类时的别名栏)。 有层级关系的类型在链接地址里就像有层级的目录。 出于性能原因,强烈不建议使用%category%作为链接地址的开头。

%tag%

标签的别名(新建/编辑标签时的别名栏)。 出于性能原因,强烈不建议使用%tag%作为链接地址的开头。

%author%

作者的别名。

3.自定义固定链接的问题。

当创建或更新“漂亮”固定链接结构时,WordPress会生成新的重写规则并插入到.htaccess文件中。如果出错,WordPress会提示You should update

your .htaccess now并且告诉你哪些重写规则需要拷贝和粘贴到.htaccess文件(粘贴到文件的末尾)。

WordPress不会删除.htaccess中任何已存在的重写规则或目录。如果有其他重写规则,把它们放到WordPress的重写规则的前面。

(1)我的.htaccess在哪里?

Wordpress的和.htaccess都在博客地址目录下,博客地址在设置,常规选项里可以查到。由于有个”.”在文件名中,FTP客户端可能看不到,除非你修改FTP客户端的设置,使其显示所有文件,包括隐藏文件。如果你是通过Godaddy Hosting Connection installation来安装WordPress的话,有些主机提供商(如Godaddy)不显示或不允许你修改.htaccess文件。

(2)创建和编辑(.htaccess)

如果还没有.htaccess文件,创建一个。如果能通过shell或ssh连上服务器,直接输入touch .htaccess就创建了。如果使用FTP上传文件,可以在本地创建文件,如ss,上传到WordPress的跟目录,然后重命名为.htaccess。

可以通过FTP,shell或主机提供商可能提供的控制面板来编辑.htaccess。

如果.htaccess有错而导致(“Internal Server Error (500)”),可以使用FTP或控制面板删除出错的.htaccess。

(3)自动更新 .htaccess

如果WordPress不能自动更新.htaccess,它会告诉你原因,如.htaccess文件可写,才会自动更新,但是目前不是可写的„,这个提示在设置→固定链接面板的底部。

想让WordPress自动更新,必须给WordPress开通.htaccess文件的写权限. 确切的权限依赖于你的服务器环境,尝试给文件拥有者打开写权限,然后作者所在组打开写权限,然后所有人,一步一步测试,一旦WordPress有了写权限,则不要再进一步放宽权限。

(4)不使用mod_rewrite的固定链接

漂亮的固定链接通常需要mod_rewrite,但是IIS(Windows servers)不支持mod_rewrite。(如果在Windows上使用Apache 2.0.54,mod_rewrite可以正常工作,需要在打开这个模块。)

如果使用IIS 7且有服务器的管理权限,可以使用Microsoft的URL Rewrite模块。虽然和mod_rewrite不是完全兼容,但是支持WordPress的“漂亮”链接。安装后打开WordPress文件夹下的,添加下面的规则到

ver节点。

4. 固定链接遇到的问题和解决

.htaccess一般性问题

对于WordPress没有生成.htaccess文件或不将新的重写规则写到已存在的.htaccess文件,原因各种各样,按照下面的步骤,一步一步,注意,当且仅当上一步无效后再继续下一步。

(1)修改权限: 使用chmod将 .htaccess的权限改为666,以便使用template

editor编辑,但是不推荐这样做,因为这样的话其他有编辑模板权限的用户也能编辑.htaccess,可以将权限改为660。

(2)服务器阻止修改: 服务器有可能阻止了SERVER_SOFTWARE变量的设置,导致生成.htaccess失败。如果确定使用的是Apache,修改wp-includes/,跟着下面的步骤走。

5.修复其他问题

如果正确生成.htaccess但固定链接还是有问题,到WordPress论坛How To版发帖子求助。

AllowOverride Not Enabled

服务器可能没打开AllowOverride。

如果的AllowOverride设置的是None,那.htaccess将被忽略。正确的设置:

Options FollowSymLinks

AllowOverride All

也需要在DocumentRoot打开AllowOverride:

# „ other directives„

AllowOverride All

对于使用Mac OS X服务器的,还要修改/etc/httpd/sites/中的AllowOverride。

如果不想设为all,参考Apache Core Features.

翻页有问题

有时候翻到第二页或其他页不能正常工作,地址如下:

/page/2/

/category/categoryname/page/2/

e/year/month/day/page/2/

e/year/month/page/2/

访问上面的任何一个链接,出现提示说: “Sorry, no posts match that

criteria.”

这是.htaccess造成的,删掉,重新生成就好了。

如果还不行,到这里看看this support post.

6.小贴士和小技巧

如果想在Google News上展示你的网站,你的链接地址至少以3个数字结尾,通过%postname%-%post_id%很容易做到,最后生成的URL如/cooking-tips-tricks-344。

地址以.html结尾

使用结构标签很容易做到这一点,如

需要注意的是,这并不会生成静态的html文件,仅仅是用.html作为后缀,页面还是动态生成的。这是否会给SEO带来好处还无定论,但是当你想从WordPress搬家时,将带来很多便利,因为所有页面可以很容易地变成静态的,而且地址不用改变。

避免固定链接地址被解析成归档链接

也许有的人一天顶多发一篇博客,于是使用%year%%monthnum%%day%这样的固定链接,这样的链接会解析成这一天所有的文章,为了避免这个问题,最好使用%year%%monthnum%%day%%hour%。

检查固定链接结构

检查博客是否有固定链接结构,使用如下代码:

if ( get_option(‘permalink_structure’) != ” ) { echo ‘permalinks

enabled’ }

详看:/zh-cn:%E4%BD%BF%E7%94%A8%E5%9B%BA%E5%AE%9A%E9%93%BE%E6%8E%A5


本文标签: 链接 地址 使用 文章 文件