之前给nginx做301重定向的时候经常会这样写:
server {
listen 80;
server_name www.nginx.org nginx.org;
if ($http_host = nginx.org) {
rewrite (.*) http://www.nginx.org$1;
}
...
}
而今天在 nginx docs 上看到这是不正确的。。。。
正确的写法应该是这样的:
server {
listen 80;
server_name nginx.org;
return 301 http://www.nginx.org$request_uri;
}
server {
listen 80;
server_name www.nginx.org;
...
}
这好像只能在较新版本的 nginx 中才有用,在0.9.1版本(含)以前,可以这样实现重定向:
rewrite ^ http://www.nginx.org$request_uri?;
EOF