【问题标题】:How to transform (rewrite) part of URL in nginx如何在 nginx 中转换(重写)部分 URL
【发布时间】:2018-01-16 18:47:57
【问题描述】:

我正在尝试将流量重定向到我们的新服务器,但旧服务器 (Mac OS) 使用不区分大小写的文件名,而新(嵌入式)服务器使用 Linux(区分大小写)。 我的问题是从以下位置重定向流量:

http://server.com/NEW/variable_url

http://server.com/new/variable_url

(注意下方的“新”)。

我希望能够在不使用 perl 或 lua 或其他模块的情况下为 nginx 执行此操作,因为该服务器在嵌入式环境中运行。

到目前为止我尝试过:

 location ~* ^/new/ {
       access_log /var/log/nginx/new.log combined;
        rewrite ^/new/(.*)$ $1 permanent;
     }

没有成功。

【问题讨论】:

    标签: regex nginx url-rewriting location


    【解决方案1】:

    也许是这样的?

    位置/新 {

    重写 ^/NEW/(.*)$ /new;

    }

    【讨论】:

    • 不工作,仍在尝试...它没有重定向到正确的页面。
    【解决方案2】:

    自己解决了。我错过了指向 Web 服务器根目录的根指令。所以对于任何感兴趣的人来说,解决方案是:

    location ~* ^/NEW/ {
            root /etc/nginx/html/;
            rewrite /NEW/(.*)$ /new/$1 permanent;
         }
    

    【讨论】:

      【解决方案3】:

      如果你想重定向来自特定链接/NEW/exampe1的流量,你可以试试

      location =/NEW/example1
      {
      rewrite ^ /new/example1 last;
      }
      

      【讨论】:

      • 对不起,我的问题很糟糕,在这种情况下,“示例”可以是任何东西,因为有很多网站,它不是静态的。
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-03-21
      • 1970-01-01
      • 2017-05-28
      • 2019-01-24
      • 2011-05-18
      • 1970-01-01
      相关资源
      最近更新 更多