如何使用正则表达式重定向旧的永久链接?

时间:2016-03-02 02:34:19

标签: wordpress redirect nginx permalinks

我正在尝试解决链接腐烂的问题,这是一年前在高流量网站上永久更改的结果。我知道你可以重定向apache中的某些永久链接结构,但是如何在正则表达式中完成?

我需要移动此格式的所有链接请求:

http://www.*****.com/permalinks/year/month/day/title

到目前(截至2015年)格式:

http: //www.*****.com/year/month/day/title

基本上我只需要从url请求中删除名称永久链接以从数据库中获取它。

我尝试强制搜索任何带有404的东西,但它不可靠,而且因为数据库很大所以它非常慢。

我在正则表达式中试过这个但是它不起作用:

/permalinks/(d*)/(d*)/(d*)/(.*) => /(d*)/(d*)/(d*)$4

2 个答案:

答案 0 :(得分:0)

你需要简单的正则表达式重写来删除永久链接/并保留其余的url:

server {
        listen          80;
        server_name     example.com;
        rewrite ^/permalinks/(.*)  http://example.com/$1 permanent;
}

答案 1 :(得分:0)

感谢您的回复。我将研究那段代码。它似乎是针对nginx.conf的?我目前无法访问,所以我无法尝试。

我通过城市长颈鹿重定向插件使用这个正则表达式,它可以工作:

/ permalinks /(.*)==> / $ 1