nginx的常见rewrite规则讲解和示例

时间:2016-05-23
1、域名跳转

场景一:使用了新域名newdomain.com,要将老域名olddomain.com流量导过来。
      if ($host = 'olddomain.com' ) {
                rewrite  ^/(.*)$  http://newdomain.com/$1  permanent;
     }

场景二:使用了新域名newdomain.com,要将其他域名的流量导过来。
     if ($host != 'www.newdomain.com' ) {
          rewrite  ^/(.*)$  http://www.newdomain.com/$1  permanent;
     }
这样配置后,用户输入sina.com.cn也可以正常访问到www.sina.com.cn

2、url跳转

场景一:访问A页面,跳转至B页面,浏览器地址栏还是老url,即A页面地址
      rewrite ^/A.html$ /html/B.html last;

场景二:访问A页面,跳转至B页面,浏览器地址栏是新url,即B页面地址
      rewrite ^/A.html$ /html/B.html permanent;

场景三:当访问的文件和目录不存在时,重定向到某个php文件

if( !-e $request_filename )

{

rewrite ^/(.*)$ index.php last;

}

场景四:禁止访问多个目录 

 

location ~ ^/(cron|templates|shell)/

{

deny all;

break;

}

 

场景五:禁止访问以文件后缀名的文件

location ~ .*\.(sh|txt|conf|doc|py)$

{

return 403;

}

 

场景六:设置某些类型文件的浏览器缓存时间

location ~ .*\.(gif|jpg|jpeg|png|bmp|swf)$

{

expires 30d;

}

location ~ .*\.(js|css)$

{

expires 1h;

}


-------------------------------------------------------------------------------------------
nginx rewrite知识讲解
上一条:Windows Server 2012 R2在桌面上显示计算机/网络图标 下一条:apache和nginx的介绍、对比和使用区别

相关文章

最新文章