尝试让 nginx 返回 301,保留 $_GET

尝试让 nginx 返回 301,保留 $_GET

我在配置 nginx 以返回我想要的 url 时遇到了麻烦。我想http://domain.com/blah?abc=e9800ecf8返回http://domain.com/createpage.php?abc=e9800ecf8,即它保留了abc变量$_GET

createpage.php位于 /www/webroot,但blah不存在。我该怎么做?

这是我的配置文件的服务器块(显然,没有按照我想要的方式执行):

server {
    root /www/webroot;
    index index.html;

    location / {
        index index.html;
    }
    location = /blah {
      return 301 /createpage.php;
    }
}

答案1

server {

    root /www/webroot;
    index index.html;

    location / {

        if ($request_uri ~ "^/blah\?abc=([a-z0-9]+)$") {
            return 301 /createpage.php?abc=$1;
        }

    }

}

相关内容