nginx 下配置 301和302 重定向

10 年 ago jony nginx 下配置 301和302 重定向已关闭评论

nginx 301 302跳转的详细说明

server {

listen 80;

server_name abc.com;

rewrite ^/(.*)    http://www.abc.com/$1   permanent;

access_log off;

}

last – 基本上都用这个Flag。

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

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

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

Nginx的重定向用到了Nginx的HttpRewriteModule,下面简单解释以下如何使用的方法:

rewrite命令

nginx的rewrite相当于apache的rewriterule(大多数情况下可以把原有apache的rewrite规则加上引号就可以直接使用),它可以用在server,location  和IF条件判断块中,命令格式如下:

rewrite 正则表达式 替换目标 flag标记

flag标记可以用以下几种格式:

last – 基本上都用这个Flag。

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

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

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

特别注意:

last和break用来实现URL重写,浏览器地址栏的URL地址不变,但是在服务器端访问的路径发生了变化;

redirect和permanent用来实现URL跳转,浏览器地址栏会显示跳转后的URL地址;

301跳转实例

server {

listen 80;

server_name abc.com;

rewrite ^/(.*)    http://www.abc.com/$1   permanent;

access_log off;

}

302跳转实例

server {

listen 80;

server_name abc.com;

rewrite ^/(.*)    http://www.abc.com/$1   redirect;

access_log off;

}