Nginx 重写 URL 404 错误

Nginx 重写 URL 404 错误

我想要屏蔽或者重写 URL。

目前,我的应用程序详细信息页面如下所示:

example.com/detail/morphite-final-beta?id=com.crescentmoongames.morphite

所以我想要没有“?id=”的页面像这样:

example.com/detail/morphite-final-beta/com.crescentmoongames.morphite

这是我在 nginx 配置中输入的代码:

location /detail/ {

    rewrite ^/detail/([\w-]+)/([\w-]+)/$ /detail/$1?id=$2;

}

返回 404 Not Found 错误。我创建了该代码并尝试了其他在此页面上搜索答案的方法,但均无济于事。哪里出了问题?

答案1

您的网址中似乎有 ?,这很难通过正则表达式实现。请尝试这种方法。

if ($args ~ "(^|&)id=com.crescentmoongames.morphite($|&)"){
    set $rule_0 1$rule_0;
}
if ($rule_0 = "1"){
    rewrite ^/example.com/detail/morphite-final-beta$ /example.com/detail/morphite-final-beta/com.crescentmoongames.morphite permanent;
}

相关内容