Redirect 如何编写nginx重写来路由具有特定查询变量的所有url
我有几个(15+)这样的网址 site.com/q=something/plus此子文件夹 site.com/q=somethingelse/plus其他子文件夹 我想把所有这些都重写到root/。这些都是非常古老的内容,不需要路由到其他任何地方 我试过:Redirect 如何编写nginx重写来路由具有特定查询变量的所有url,redirect,nginx,Redirect,Nginx,我有几个(15+)这样的网址 site.com/q=something/plus此子文件夹 site.com/q=somethingelse/plus其他子文件夹 我想把所有这些都重写到root/。这些都是非常古老的内容,不需要路由到其他任何地方 我试过: if ($request_uri ~ "([^\?]*)\?(.*)q=([^&]*)&?(.*)") { set $original_path $1; rewrite ^ "${original_path}"
if ($request_uri ~ "([^\?]*)\?(.*)q=([^&]*)&?(.*)") {
set $original_path $1;
rewrite ^ "${original_path}" permanent;
}
及
正如评论中所讨论的,您的第二种方法应该可以很好地工作
if ($arg_q) {
return 301 /;
}
现在还不清楚你有什么问题,特别是你提到的第二种方法,它肯定会起作用。我不知道为什么,但我再次尝试了第二种答案,它起了作用。谢谢你让我再试一次,小伙子,成功了!我把它作为答案贴了出来,然后说::-)既然问题解决了,你能接受答案吗?谢谢平——答案有什么问题吗?如果你没有得到赏金,我很抱歉。有没有其他方法可以给你奖金?唯一的方法就是开始一个新的(关于这个问题或任何其他问题)。@TJSherrill,噢,哇,谢谢!我没想到你会真的开始另一个。这次一定要奖励它——因为你在重新启动之前已经接受了我的答案,它不会自动获得奖励,但我认为你仍然可以手动将它奖励给现有的答案。如果你有任何问题,请告诉我!
if ($arg_q) {
return 301 /;
}