Nginx 301使用正则表达式重写

时间:2014-10-30 21:25:53

标签: redirect nginx

我转移到一个新软件,现在需要抓住旧网址并将其重写为新网址。

以下是一个例子:

旧网址:http://www.religiousforums.com/forum/neopagan-revival-religions-dir/19088-druid-horoscope-whats-your-sign.html 新网址:https://www.religiousforums.com/threads/druid-horoscope-whats-your-sign.19088/

我尝试了这个,但它不起作用:

    location ~* ^/forum/[^/]+/[0-9]+-[^\.]+\.html$ {
            rewrite [^/]+/([0-9]+)-[^\.]+\.html$ /threads/$1/ last;
    }

我在这里缺少什么?我只需要新网址中的id。案文并不重要。

1 个答案:

答案 0 :(得分:0)

您的捕获组错误,您正在捕获数字。

location ~* ^/forum/[^/]+/[0-9]+-[^.]+\.html$ {
    rewrite ^/forum/[^/]+/([0-9]+)-([^.]+)\.html$ /threads/$2.$1/ last;
}