WordPress 拥有非常强大的伪静态机制,WordPress 的伪静态和其它的程序略有不同,为了兼容性和扩展性,伪静态规则是被写在 PHP 代码里的,当访问任何不存在的文件的时候服务器会自动调用 index.php 文件,然后 WordPress 通过对 url 进行解析,可以判断一下你要访问的是哪个页面,如果没解析出来才会返回 404 错误。
伪静态
WordPress 的文章链接规则是可以让你自定义的,也就是 “固定连接”,默认的固定连接是 “?p=123”,这种情况下没有使用伪静态,我不推荐使用默认,因为如果 WordPress 不使用伪静态在后边可能会造成很多未知情况。
伪静态需要服务器支持 mod_rewrite,如果不支持但还坚持使用伪静态会自动转换成一种叫 PATHINFO 的链接格式,下边会介绍。
先说说自带的几种伪静态固定连接的缺点:
- 日期和名称:这种连接不够简洁,而且当修改日期的时候会导致原连接失效
- 月份和名称:同上
- 数字型:分类加文章的 ID,不过这样如果文章有多个分类的话就会导致一篇文章有多个连接,容易被搜索引擎判为作弊
- 文章名:如果文章名是中文的就会产生中文连接,中文链接被编码之后非常长,导致不简洁这里要声明一点,就是无论你怎么用伪静态,都无法隐瞒搜索引擎你是动态网页的事实,但简单明了的链接还是比静态链接更加受到欢迎。这里要说一下自定义结构,自定义结构中可以使用一些特殊关键字,这些关键词在不同的情况下会被自动替换成不同的内容:
-
- %year%:文章发表的年份,四位数,如 2014
- %monthnum%:月份,如 05
- %day%:天,如 28
- %hour%:小时,如 15
- %minute%:分钟,如 43
- %second%:秒,如 33
- %postname%:文章标题的别名(编辑文章 / 页面时的别名栏)
- %post_id%:文章的唯一 ID,如 423
- %category%:分类的别名(新建 / 编辑分类时的别名栏),有层级关系的类型在链接地址里就像有层级的目录,于性能原因,强烈不建议使用 %category% 作为链接地址的开头
- %tag%:标签的别名(新建 / 编辑标签时的别名栏),出于性能原因,强烈不建议使用 %tag% 作为链接地址的开头
%author%:作者的别名
我的建议是:使用 %postname% 或者 %post_id% 来作为固定连接。
但如果文章是中文的话 %postname% 默认是中文的,如果你懒得改的话请使用 %post_id%(或者考虑自动翻译固定连接的插件),%postname% 的优点在于链接是有意义的,但需要手动修改才能变得简洁明了。
如果你想要让链接变得好看可以考虑在链接后边加一个 .html,虽然不是真正的 Html 页面,但看起来是很舒服的,至少我自己这么认为。
本站使用的固定连接:/%postname%.html
PATHINFO
PATHINFO 是在主机环境不支持 mod_rewrite 的情况下的一种补救措施,如果你的固定连接保存之后前边会自动加上一个 index.php 证明是不支持 mod_rewrite 的,这种问题普遍存在于 Windows 系统的主机上,所以 PHP 程序请尽量使用更加高效的 Liunx 主机。
小结
简单来说,固定连接几不要:
- 链接不要出现中文
- 链接不要出现日期
- 链接不要太深太长
- 欢迎补充~