nginx 基础-rewirte指令

本文介绍Nginx中rewrite指令的应用技巧,包括如何使用last与break控制重定向流程、实现文件与目录的条件重定向、设置特定浏览器的访问路径及优化缓存策略等。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

 rewirte指令

last --  相当于Apache 里的【L】标记 ,表示完成rewrite;

break -- 本条规则匹配完成后,终止匹配,不再匹配后面的规则;

redirect -- 返回302 临时重定向,浏览器地址栏会显示跳转后的URL地址

permanent -- 返回301重定向,浏览器地址栏会显示跳转后的URL地址

 注意:在location 根推荐为last 非根使用为break

实例: 当文件不存在时,转到图片目录

 if (!-f $request_filename)
  {
      rewrite ^/img/(.*)$ /site/image/$1 last;
  }

实例: 判断文件和目录 是否存在

if (!-e $request_filename){

  rewrite ^/img/(.*)$ /site/image/$1 last;

}

实例:多目录转成参数 http://abc.domian.com/sort/2 => abc.domain.com/index.jsp?act=sort&name=abc&id=2

if ($host ~* (.*)\.domain\.com)
{
      set $sub_name $1;
      rewrite ^/sort/(.*)/$  /index.php?act=sort&cid=$sub_name&id=$1 permanent ;

}

实例 目录对换  /123456/abc ==> /abc?id=123456

if ($host ~* (.*)\.domain\.com)
 {
      set $sub_name $1;
      rewrite ^/sort/(.*)$  /$1/index.php permanent;
}

实例:如果客户使用firefox浏览器 ,则重定向到/nginx-ie 目录下

 if ($http_user_agent ~* Mozilla)
 {
        rewrite (.*)$ /nginx-mozilla/$1 break;
 }

实例: 禁止访问目录

location ~ ^/data {

    deny all

    break ;

}

实例 某些类型文件的浏览器缓存时间:

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

{

    expries 30d

}















评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值