Nginx - Wordpress多站点。将非www重定向到www

时间:2014-10-01 13:32:39

标签: nginx http-redirect wordpress

在Ubuntu VPS上我使用nginx运行Wordpress Multisite。

如何将所有网站域名从非www重定向到www?

我希望不是逐站点完成此操作,而是在创建后为每个网站制定规则

1 个答案:

答案 0 :(得分:1)

使用wwww在Nginx中设置所有域服务器块。也就是说,只设置http://www.example.com等类型的服务器块,然后创建一个单独的catch all server block,将所有http://example.com等类型请求重定向到http://www.example.com等。

这基于配置outlined here

http {
    [...]
    # Catch All for http://example.com domains
    # These will all redirect to http://www.example.com
    server {
        listen 80;
        return 301 http://www.$host$request_uri;
    }
    # Other server blocks (http://www.example.com etc)
    include /etc/nginx/conf.d/*.conf;
}

这样做的方式是http://example.com的所有请求将始终只由catch all块提供,它会将它们反弹到http://www.example.com

警告是:

  1. 确保您不在任何地方使用default_server指令。

  2. 对已解析到服务器但未明确定义的域的请求将向用户返回重定向循环错误。为避免这种情况,如果出现问题,请确保定义了解析到服务器的每个域。