nginx配置404页面和301重定向的配置

一,NGINX下404的配置(环境 CentOS6.5+NGINX)

1.创建自己的404.html页面;

2.更改nginx.conf在http定义区域加入: fastcgi_intercept_errors on;

3.更改nginx.conf(或单独网站配置文件,例如在nginx -> sites-enabled下的站点配置文件 )或者单独的配置文件比如/etc/nginx/vhost/***.conf中在server 区域加入: error_page 404 /404.html; 或者 error_page 404 =http://www.xxx.com/404.html; ,注意后面必须有分号,不然报错;

4.重新启动nginx

 

二,NGINX下301重定向的配置 (环境 CentOS6.5+NGINX)

进行了301重定向,把www.meiniu.org和meiniu.org合并,并把之前的域名也一并合并. 有两种实现方法,第一种方法是判断nginx核心变量host(老版本是http_host):/etc/nginx/vhosts/meiniu.org.conf

server {

server_name www.meiniu.org meiniu.org ;

if ($host != 'www.meiniu.org' ) {

rewrite ^/(.*)$ http://www.meiniu.org/$1 permanent;

}

...

}

第二种方法:

server {

server_name meiniu.org;

rewrite ^/(.*) http://www.meiniu.org/$1 permanent;

}

测试了第一种方法ok,第二种方法没试过,有试过的可以做个反馈,

这两种方法中, permanent是关键,详细说明见nginx重定向规则说明。

last – 基本上都用这个Flag。

break – 中止Rewirte,不在继续匹配

redirect – 返回临时重定向的HTTP状态302

permanent – 返回永久重定向的HTTP状态301

注意:301不能取代域名解析,因为所谓的301还只是在服务器端完成的,该有的解析不能停,我就是把域名解析给取消了,当时可能是时间短,还有些解析的缓存,导致并没有发现任何的异常,等到过了几天之后,发现解析不了了,可是一切都晚了,给搜索引擎留下的不好印象已经形成了,悔之晚矣。