【问题标题】:how to write a nginx rewrite to route all urls with a specific query var如何编写 nginx 重写以使用特定查询 var 路由所有 url
【发布时间】:2016-05-28 06:17:44
【问题描述】:

我有几个(15+)个这样的网址

site.com/q=something/plus-this-subfolder

site.com/q=somethingelse/plus-someother-subfolder

我想将所有这些重写到根目录/。这些都是非常古老的内容,不需要路由到其他任何地方。

我试过了:

if ($request_uri ~ "([^\?]*)\?(.*)q=([^&]*)&?(.*)") {
    set $original_path $1;
    rewrite ^ "${original_path}" permanent;
}

与

if ($arg_q) {
    return 301 /;
}

【问题讨论】:

  • 目前尚不清楚您遇到了什么问题,尤其是您提到的第二种方法,它肯定可以工作。
  • 我不知道为什么,但我再次尝试了第二个答案,它成功了。感谢您推动我再试一次
  • 很高兴它成功了!然后,我将其发布为答案。 :-)
  • 既然问题解决了,你能接受答案吗?谢谢!
  • ping -- 答案有问题吗?

标签: redirect nginx


【解决方案1】:

正如 cmets 中所讨论的,您的第二种方法应该可以正常工作。

if ($arg_q) {
    return 301 /;
}

【讨论】:

  • 如果您没有得到赏金,我深表歉意。有没有其他方法可以给你赏金?
  • 唯一的方法是开始一个新的(关于这个或任何其他问题)。
  • @TJSherrill,哦,哇,谢谢!我没想到你真的会开始另一个。只需确保这次授予它-由于您在重新启动它之前已经接受了我的答案,因此不会自动授予赏金,但我认为您仍然应该能够手动将其授予现有答案.如果您有任何问题,请告诉我!
猜你喜欢
  • 2019-01-20
  • 2016-11-27
  • 2020-07-24
  • 1970-01-01
  • 2018-09-12
  • 2017-07-05
  • 2011-05-18
  • 1970-01-01
  • 2013-12-24
相关资源
最近更新 更多