之前看了大量文章,想确认一下主域名是带 www 好还是不带 www 好。最好我得出的结论是:都可以,只要保持网址的唯一就可以了!SEO 对于带与不带 www 并没有区分。但是有一点,如果是大网站,使用了很多二级域名的,那么主域名最好是带 www,不带的话会涉及到一些解析的问题,这里不展开了。

  本文主要是 LNMP (Linux + Nginx + MySQL + PHP)下 Nginx 的 301 跳转设置问题,刚才说了,网址一定要保持唯一性,不然会影响 SEO。301 是永久跳转,所以如果你决定了带不带 www 哪一个为主网址,那么另一个应该设置成 301 跳转。

  在 LAMP 中是使用.htaccess文件放置在网站根目录的方法来达到伪静态和域名重定向,而在 LNMP 中不能建立 .htaccess 文件,只能修改 .conf 文件。.conf文件放在 /usr/local/nginx/conf/vhost/ 目录中,以你建立主机时候设置的域名为文件名,例如:/usr/local/nginx/conf/vhost/ihacksoft.com.conf 。

  登录VPS后,使用 vi /usr/local/nginx/conf/vhost/ihacksoft.com.conf 即可进入编辑状态。打开文件后可以看到配置内容如下:

server
        {
                listen 443 ssl;
                server_name ihacksoft.com ihacksoft.com;
                ssl_certificate /usr/local/nginx/cert/hack520.pem;
                ssl_certificate_key /usr/local/nginx/cert/hack520.key;
                ssl_session_timeout 5m;
                ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
                ssl_prefer_server_ciphers on;
                index index.html index.htm index.php default.html default.htm default.php;
                root  /home/wwwroot/hack520;

一、如果是不带 www 域名,自动跳转到带 www 的域名,那么去掉 server_name ihacksoft.com ihacksoft.com 中的 ihacksoft.com,然后在后面加上:

server {
server_name ihacksoft.com;
rewrite ^(.*) https://ihacksoft.com$1 permanent;
}

二、如果是带 www 域名,自动跳转到不带 www 的域名,那么就把上面的过程反一下即可,去除 server_name 里的 ihacksoft.com ,然后加入:

server {
server_name ihacksoft.com;
rewrite ^(.*) https://ihacksoft.com$1 permanent;
}

很简单吧,修改完成之后记得重启一下 LNMP。