Nginx:www 转跳

如何 nginx 永久转跳

http://www.example.com/faq.php 转跳到 http://example.com/faq.php

*备注*
此方法,也可以把没 example.com 转跳到 www.example.com

方法

添加个新的 server{}

server {
    listen 80;
    listen [::]:80 ipv6only=on;     #ipv6
    server_name www.example.com;     # 输入网址
    return 301 $scheme://example.com$request_uri;     # 转跳目标
}

server {
    listen 80;
    server_name example.com;    # 没有 www

    ....
}

$request_uri 用来保存原来网址的请求

$scheme 自动决定目标网址是否 http / https

注意
在0.9.1版本或者更旧的版本,可以这样实现重定向:
rewrite ^ http://example.com$request_uri? permanent;


更新 @2013年5月2日 —- 添加第二个 server block,容易明白点转跳的目标