WP永久链接的NGINX位置重写

时间:2016-04-11 16:14:25

标签: wordpress nginx url-rewriting nginx-location

所以,我的WP有几乎经典的永久链接结构,如: /%category%/%year%/%month%/%day%/%postname%/

我想将301错误代码重定向到新样式,例如 /%year%/%month%/%day%/%postname%/ 或简单 /%postname% /

我已制定此规则,但它们会返回相同的网址。

location ~ "^\/([a-zA-Z0-9_.-]+)\/([0-9]{4})\/([0-9]{2})\/([0-9]{2})\/([a-zA-Z0-9_.-]+)\/$" {
     rewrite ^(.*) $1 permanent;
 }  

或者,/%postname%/我尝试过这样的代码:

location ~ "^\/([a-zA-Z0-9_.-]+)\/([0-9]{4})\/([0-9]{2})\/([0-9]{2})\/([a-zA-Z0-9_.-]+)\/$" {
     rewrite ^(.*) $5 permanent;
 }

但是这段代码返回空响应。

请帮我解决问题。如果我错了,我无法抓住。谢谢!

1 个答案:

答案 0 :(得分:1)

所以,这非常简单:

location ~ "^/([a-zA-Z0-9_.-]+)/([0-9]{4})/([0-9]{2})/([0-9]{2})/([a-zA-Z0-9_.-]+)/$" {
     rewrite ^(.*)/(.*)/(.*)/(.*)/(.*)/ /$5/ permanent;
 }  

此规则将 / category / year / month / day / postname / 重写为WP中的 / postname / 网址,并为搜索引擎提供301错误代码。