nginx条件重定向规则

时间:2016-09-26 17:15:36

标签: redirect nginx nginx-location

我有这样的任务: http://www.realtyadvisorselite.com/homes-for-sale/skokie 永久重定向到 http://www.realtyadvisorselite.com/residential/homes-for-sale/skokie

如果从网址中丢失,则添加“住宅”子文件夹 我在nginx.conf中有这样的服务器块

        server {
        listen       80;
        server_name  realtyadvisorselite.com;
        return       301     http://www.realtyadvisorselite.com$request_uri;
    }

    server {
    listen 80;
    server_name  www.realtyadvisorselite.com;
    location / {
          proxy_pass http://repar;
    }
}

对不起,好像是一个简单的任务,但我无法理解nginx正则表达式的方法......谢谢!

1 个答案:

答案 0 :(得分:1)

您的问题意味着它是一个需要重定向的网址。所以一个简单的选择是使用完全匹配位置和return语句:

location = /homes-for-sale/skokie {
    return 301 /residential/homes-for-sale/skokie;
}

如果您希望所有以/homes-for-sale开头的URI都以/residential为前缀,您可以使用前缀位置和返回语句:

location ^~ /homes-for-sale/ {
    return 301 /residential$request_uri;
}

有关详情,请参阅this document