【问题标题】:Rewrite directory as parameter重写目录作为参数
【发布时间】:2017-06-17 12:58:26
【问题描述】:

我正在尝试重定向来自

的请求

example.com/abc234

example.com/setup.html?s=abc234

到目前为止,我已经尝试了以下方法,但它似乎总是以 1)不传输参数或 2)结束无限循环(或 404),因为它还尝试重定向重定向的请求?该请求必须可见重写,因为我想用 JS 而不是 PHP 来获取参数。

server {
 server_name  example.com;
 root         /var/www/html;
 rewrite      ^(.*)$ /setup.html?s=$1 redirect;
}

我还尝试了location / { try_files ...; } 的各种组合或在rewrite 中使用绝对 URL,但均未成功。

【问题讨论】:

    标签: nginx nginx-location


    【解决方案1】:

    一种技术是仅重写与物理文件不匹配的 URI。

    例如:

    server {
        server_name  example.com;
        root         /var/www/html;
    
        location / {
            try_files $uri $uri/ @rewrite;
        }
        location @rewrite {
            return 302 /setup.html?s=$uri;
        }
    }
    

    请参阅this document 了解更多信息。 重写 ^(.*)$ /setup.html?s=$1 重定向; }

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2015-06-19
      • 2018-12-04
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-05-16
      • 2021-04-03
      • 2023-02-14
      相关资源
      最近更新 更多