更友好的WordPress帖子的链接

Spread the love

WP的后台管理页面中,可以设置帖子的Permalinks样式。

缺省时,它是用非SEO友好的形式的,例如:http://www.rsywx.net/wordpress/?p=960这样的形式。但是,用户可以定制Permalinks的格式,并通过后台URI重写规则从而得到更SEO友好的URI。

我的设置是这样的:/%year%/%monthnum%/%post_id%,因此所有的帖子的连接都会是类似:http://www.rsywx.net/wordpress/2008/10/960这样的,对应的URI重写规则为:

RewriteRule ^wordpress/([0-9]+)/([0-9]+)/([0-9]+) wordpress/?p=$3

如何,很简单吧?

10月13日补记:

突然想到,这个重写和Pylons的map还是有点不一样的。我在书写Pylons的map规则的时候,感到很不愉快。因为它的这个类似重写的规则,是和路径相关的。

例如,当我想将/xxx/yyy映射为/xxx?id=yyy的时候,所有html的路径映射都是基于/xxx/yyy而进行,而此时物理文件还是存放在/xxx目录下,所有的CSS/image/JavaScript的相对路径都是按照/xxx计算的,因此立马出现了路径的映射错误——除非你使用绝对路径进行引用……

另外,又发现一个小问题。WordPress处理页面和帖子的方法是不一样的。在激活上述的RewriteRule之后,页面链接将出现问题,因此必须再一个新的RewriteRule:

RewriteRule ^wordpress/([0-9]+) wordpress/?pageid=$1

并在后台管理程序中将各个页面的链接的PermaLink修改即可。

10月14日补记

今天又突然发现上述的重写规则对于一些WP的连接,如tag,按月的存档等还是不起作用。搜索一番并借助WP的帮助后,最终的重写规则如下,同时,该重写规则应存放在wordpress工作目录中:

RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-D
RewriteRule . /wordpress/index.php [L]

这个规则就基本正常了。唯一的问题是wordpress/wp-admin不能正常工作,而必须用wordpress/wp-admin/index.php才行。

One thought on “更友好的WordPress帖子的链接”

Leave a Reply

Your email address will not be published. Required fields are marked *

This site uses Akismet to reduce spam. Learn how your comment data is processed.