将所有url重写为另一个url,除了nginx中的url

时间:2017-12-20 13:24:41

标签: linux redirect nginx

我想重定向

https://dev.abc.com/ to https://uat.abc.com/

https://dev.abc.com/first to https://uat.abc.com/first

https://dev.abc.com/second to https://uat.abc.com/

https://dev.abc.com/third/ to https://dev.abc.com/third/ (Point the same)

我尝试过以下配置并获得前三个。但最后一个也重定向到了uat。在这种情况下,任何人都可以帮助我。

server {
        listen 80;
        server_name dev.abc.com;
        root /var/www/

      location ~* ^/first{
      return 301 https://uat.abc.com$request_uri;
      }

      location ~* ^/second{
      return 301 https://uat.abc.com;
      }

      location ~* ^/{
      return 301 https://uat.abc.com$request_uri;
      }

任何人都可以帮我这个配置吗?

1 个答案:

答案 0 :(得分:3)

location ~* ^/匹配以/开头的任何URI - 任何尚未与早期正则表达式位置规则匹配的URI

要仅匹配URI /而不使用其他内容,请使用$运算符:

location ~* ^/$ { ... }

甚至更好,并且完全匹配位置块:

location = / { ... }

有关详情,请参阅this document

相关问题