开发网站时,一般情况下都会将带 www 的网址访问时默认跳转到不带 www 的,或者将不带 www 的跳转到带www 的,比如输入 xxxx.com 服务器收到请求后告诉浏览器页面被移到 www.xxxx.com
了,然后浏览器就会请求 www.xxxx.com
从而把用户带到另一个页面,这种行为叫做 301 重定向,意思是页面永久性被移走。
这种方式对搜索引擎比较友好,可以将对应页面的权重进行转移,301 重定向和页面跳转不一样,页面的跳转属于302 重定向,就是告诉浏览器页面被暂时性移走;这两种重定向本质上都是在浏览器 http 响应头中添加对应信息实现的。
在 Nginx 中,配置 301 永久重定向有两种方式。
server {
listen 80;
server_name www.haicoder.net haicoder.net;
if ($http_host = www.haicoder.net) {
rewrite (.*) http://haicoder.net$1;
}
...
}
server {
listen 80;
server_name www.haicoder.net;
return 301 http://haicoder.net$request_uri;
}
server {
listen 80;
server_name haicoder.net;
...
}
开发网站时,一般情况下都会将带 www 的网址访问时默认跳转到不带 www 的,或者将不带 www 的跳转到带www 的,比如输入 xxxx.com 服务器收到请求后告诉浏览器页面被移到 www.xxxx.com
了,然后浏览器就会请求 www.xxxx.com
从而把用户带到另一个页面,这种行为叫做 301 重定向,意思是页面永久性被移走。