【问题标题】:Nginx - URL with www dont redirectNginx - 带有 www 的 URL 不重定向
【发布时间】:2016-10-28 17:52:26
【问题描述】:

我安装了 nginx,它充当站点的代理。请看下面的配置

proxy_cache_path /tmp/cache levels=1:2 keys_zone=STATIC:10m inactive=10m  max_size=1g;
server {
        listen 80;
        server_name domain.com www.domain.com;
        client_max_body_size 20M;
        location / {
                proxy_set_header Host $host;
                proxy_set_header X-Real-IP $remote_addr;
                proxy_pass http://domainserver.com:8000;
                proxy_connect_timeout       600;
                proxy_send_timeout          600;
                proxy_read_timeout          600;
                send_timeout                600;
        }
        location = /xmlrpc.php {
                deny all;
                access_log off;
                log_not_found off;
        }
        location = /home-garden {
                rewrite 301 http://domain.com/category/forsale/home-and-garden/;
        }

}

我想做的是

网址 http://www.domain.com/home-garden 应该重定向到 http://domain.com/new-home-garden

另外, http://domain.com/home-garden 应该重定向到 http://domain.com/new-home-garden

如果我提供了足够的信息以及是否有人可以帮助我,请告诉我

【问题讨论】:

  • 什么是rewrite 301 http://domain.com/category/forsale/home-and-garden/;?你的意思是return

标签: .htaccess redirect nginx


【解决方案1】:

您需要添加一个新的服务器块来捕获www.domain.com,然后重定向到domain.com。这是下面的第一个服务器块。请注意,这会将 所有 请求从 www.domain.com 重定向到 domain.com。如果这不是本意,可以定制。

然后,您需要从第二个服务器块中的 server_name 指令中删除 www.domain.com

对于重定向,定义一个新的位置块,如下所示。

proxy_cache_path /tmp/cache levels=1:2 keys_zone=STATIC:10m inactive=10m  max_size=1g;

server {
        listen 80;
        server_name www.domain.com;

        return 301 http://domain.com$request_uri;
}

server {
        listen 80;
        server_name domain.com;
        client_max_body_size 20M;
        location / {
                proxy_set_header Host $host;
                proxy_set_header X-Real-IP $remote_addr;
                proxy_pass http://domainserver.com:8000;
                proxy_connect_timeout       600;
                proxy_send_timeout          600;
                proxy_read_timeout          600;
                send_timeout                600;
        }
        location = /xmlrpc.php {
                deny all;
                access_log off;
                log_not_found off;
        }
        location ^~ /home-garden {
                rewrite 301 http://domain.com/new-home-garden/;
        }

}

【讨论】:

  • 这行得通.....但是位置^~ /home-garden { rewrite 301 domain.com/new-home-garden;从 www.domain.com 重定向后没有工作,所以我现在使用代理...但我不知道它是否正确
  • 我明白了...不过,代理与重定向不同。当您说从www.domain.com 重定向后重定向不起作用,这是否意味着domain.com/home-garden 正确重定向?
  • 我的意思是它从 www.domain.com 重定向到 domain.com ...但没有转到 domain.com/new-home-garden
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2017-06-20
  • 1970-01-01
  • 2021-04-16
  • 2014-03-23
  • 1970-01-01
  • 2021-04-15
  • 1970-01-01
相关资源
最近更新 更多