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

How to redirect old permalinks with regex?

我正在尝试解决 link 腐烂的问题,该问题是由于一年前在高流量站点上进行永久 link 更改而导致的。我知道您可以在 apache 中重定向某些 permalink 结构,但是这在正则表达式中是如何完成的?

我需要移动所有 link 这种格式的请求:

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

当前(截至 2015 年)格式:

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

基本上我只需要从 url 请求中删除名称 permalinks 即可从数据库中获取它。

我尝试强制搜索带有 404 的任何内容,但它并不可靠,而且由于数据库很大,速度非常慢。

我在正则表达式中尝试过,但它不起作用:

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

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

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

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

我通过城市长颈鹿重定向插件使用了这个正则表达式并且它有效:

/永久链接/(.*) ==> /$1