使用mod_rewrite重写WordPress永久链接URL

时间:2011-12-12 00:31:11

标签: apache wordpress mod-rewrite

以下mod_rewrite规则完成将www.domain.com/2011/11/page重写为www.domain.com/page的任务,但会中断www.domain.com/2011/11/(即中断WordPress存档列表)并将其重定向到网站的根目录。

重写规则应该只重写包含^([0-9]{4})/([0-9]{1,2})/page但不是^([0-9]{4})/([0-9]{1,2})/之后内容的项目。

RewriteRule ^([0-9]{4})/([0-9]{1,2})/(.*)$ /$3 [NC,R=301,L]

有什么建议吗?

ANSWER

开头时缺少最初的正斜杠:

RewriteRule ^/([0-9]{4})/([0-9]{2})/(.*)$ /$3 [NC,R=301,L]

需要WordPress永久链接条目:

/%postname%/

而不是:

%postname%

虽然我不确定后者有多大帮助。

1 个答案:

答案 0 :(得分:2)

我认为您需要将*更改为+

RewriteRule ^([0-9]{4})/([0-9]{1,2})/(.*)$ /$3 [NC,R=301,L]

应该是

RewriteRule ^([0-9]{4})/([0-9]{1,2})/(.+)$ /$3 [NC,R=301,L]

使用(。),它可能无法匹配,因此像“/ 2011/11”这样的请求将匹配,但(。)的后向引用将为空,因此重写将进行至 ”/”。 + 表示需要至少有一个字符满足“。”。在正则表达式中。