我想要屏蔽或者重写 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;
}