正在载入...

WordPress固定链接有以下几种形式:

1.默认 /?p=123
2.日期和文章名 /%year%/%monthnum%/%day%/%postname%/
3.月份和文章名 /%year%/%monthnum%/%postname%/
4.数字一 /archives/%post_id%
5.数字二 /archives/%post_id%/(有“/”结尾)
6.自定义结构一 /%category%/%post_id%
7.自定义结构二 /%category%/%postname%

使用htaccess 301 重定向实现Wordpress固定链接形式随意修改[无敌教程]

下面分别介绍一下使用htaccess 301 重定向实现几种链接形式相互切换:


日期和文章名改为月份(或年)和文章名

/%year%/%monthnum%/%day%/%postname%对应的例子 /2011/11/01/htaccess301
/%year%/%monthnum%/%postname% 对应的例子 /2011/11/htaccess301
/%year%/%postname% 对应的例子 /2011/htaccess301

# 修改 year/month/day 固定链接为 只有year
RedirectMatch 301 ^/([0-9]+)/([0-9]+)/([0-9]+)/(.*)$ /$1/$4

# 修改 year/month/day 固定链接为year/month
RedirectMatch 301 ^/([0-9]+)/([0-9]+)/([0-9]+)/(.*)$ /$1/$2/$4

注意:链接结尾有“/”的,相应的要在“$”前面加“/”(是$,不是$1或者$2等),亦即:RedirectMatch 301 ^/([0-9]+)/([0-9]+)/([0-9]+)/(.*)/$ /$1/$4,以下的修改都是一样的。


%post_id%或%postname%前添加%category%

/%post_id%修改为/%category%/%post_id%,或者/%category%/%post_id%.html

RedirectMatch 301 ^/(\d+)$ /(.+)/$1

RedirectMatch 301 ^/(\d+)$ /(.+)/$1.html

有“/”结尾的要注意下是^/(\d+)/$,记得在“$”前加“/”,其实上面已经讲了,这里再强调。


带/archives/修改为其他

1. /archives/%post_id%修改为/%category%/%post_id%或者/%category%/%postname%

RedirectMatch 301 ^/archives/(\d+)$ /(.+)/$1

或者

RedirectMatch 301 ^/archives/(\d+)$ /(.+)/(.+)

2. /archives/%postname%修改为/%category%/%post_id%或者/%category%/%postname%

RedirectMatch 301 ^/archives/(.+)$ /(.+)/(\d+)

或者

RedirectMatch 301 ^/archives/(.+)$ /(.+)/$1


小结

正则表达式:

(.+) 对应的是任意字符(包括汉字、英文字母等)
(\d+)对应的是任意数字(仅仅是阿拉伯数字)
$1 $2 $3 是前面出现过的变量的再次引用。

推荐继续阅读:
用.htaccess 301重定向拯救固定链接设置错误
.htaccess实现Apache服务器图片和文件防盗链
我用来优化YSlow和Page Speed性能测试的.htaccess设置

还有不懂的,留言吧。我们一起研究。

本文链接:

关键词:htaccess, WordPress, 互联网, 代码, 固定链接,

(全文完        )

Comments

5 条评论(网友评论:3 条,博主回复:2 条)快速评论

  1. 博主你好,我想修改我的链接,可是这个重定向实在不知道怎么写,麻烦你能帮我写一个么?
    原地址形式:http://bloglee.net/2012/01/07/sample-post/
    我想改成:http://bloglee.net/%postname%.html

    请问这个该怎么写htaccess啊?恳请回答一下,拜托了,我折腾好就没成功,心有不甘

    • HelloWinton

      试一下下面这个:
      RedirectMatch 301 ^/([0-9]+)/([0-9]+)/([0-9]+)/(.*)/$ /$4.html

  2. 又回到这里来了,从李奇随机文章来的。比李奇那里的详细多了。

  3. 不怎么懂那些,正则表达式,请教一下 /archives/%post_id%.html改为 /%post_id%.html该怎么写

你需要 登录 才可以回复.