使用nginx重写404网址

时间:2016-01-02 13:25:51

标签: regex nginx url-rewriting rewrite

我试图重写一些显示为404的网址,但是我无法让重写工作。网址看起来像/ossobuco-alla-milanese​​/1451114854360.1451114854360?time=1451114851111。我想通过重写删除1451114854360.1451114854360?time=1451114851111

在我的nginx配置中,我有以下重写规则

rewrite "^\/(.*)\/(\d{13}\.\d{13}\?time=\d{13})$" /$1/ permanent;

我在2个在线正则表达式工具regex101regex pal中对正则表达式进行了测试,它应该可以正常运行,但似乎无法在我的服务器上运行。

2 个答案:

答案 0 :(得分:1)

要匹配查询字符串,请使用$args

location / {
    if ($args ~* "^time=\d+") {
        set $args '';
        rewrite "^/(.+)/\d+\.\d+/?$" /$1 permanent;
    }
}

PS:如果您只想匹配13digits.13digits,请使用:

rewrite "^/(.+)/\d{13}\.\d{13}/?$" /$1 permanent;

答案 1 :(得分:0)

最后它只是一个非常简单的位置块而且?删除了args。

tidyr