Nginx重写问题到外部链接

Nginx重写问题到外部链接,nginx,rewrite,url-redirection,Nginx,Rewrite,Url Redirection,我正在尝试设置一个来自的永久重定向 http://domain.com/member/blog_post_view.php?postId=1 到 源URL包含两个?我想这可能是原因,但我不确定 我尝试过各种nginx建议,包括下面的建议,但似乎无法实现重定向,希望有人能为我指明正确的方向 location /blog_post_view.php?postId=1 { rewrite "/blog_post_view.php\?postId\=1" http://blog.domain.

我正在尝试设置一个来自的永久重定向

http://domain.com/member/blog_post_view.php?postId=1

源URL包含两个?我想这可能是原因,但我不确定

我尝试过各种nginx建议,包括下面的建议,但似乎无法实现重定向,希望有人能为我指明正确的方向

location  /blog_post_view.php?postId=1 {
   rewrite "/blog_post_view.php\?postId\=1" http://blog.domain.com/friendly-url-here permanent;
}

从问号开始的请求行部分被调用,而location指令只匹配URI的path部分

您应该改用$arg_*变量:

location =/blog_post_view.php {
    if ($arg_postId = 1) {
        return 301 http://blog.domain.com/friendly-url-here;
    }
}
参考:


嗯,我理解你对查询字符串的看法。我想这是个问题。不幸的是,这段代码不适用于meIt,我似乎需要在域名后的位置包含完整路径。一旦我使用了/member/blog_post_view.php,一切都按照我的预期工作。对于一个新手来说,这只是一个小问题——我错误地认为Nginx会识别并匹配一个部分URL,但似乎不是。感谢VBart的帮助。
location =/blog_post_view.php {
    if ($arg_postId = 1) {
        return 301 http://blog.domain.com/friendly-url-here;
    }
}