nginx地址重写+10个代表性实例

本文介绍了Nginx的URL重写功能,包括为什么进行URL重写,如SEO优化和安全考虑。重点讲解了if、return、rewrite、set等地址重写指令的用法,并给出了10个经典实例,涉及域名跳转、路径替换、伪静态转换以及端口跳转等多种应用场景。
摘要由CSDN通过智能技术生成

nginx 地址重写

什么是URL重写:

URL重写是指将一个URL请求重新写成网站可以处理的另一个URL的过程。

为什么要重写:
  1. URL伪静态化:访问一个静态网址,跳转到一个动态网址上。这样做的目的是因为搜索引擎更喜欢静态页面形式的网页,搜索引擎对静态页面的评分一般要高于动态页面。所以,UrlRewrite可以让我们网站的网页更容易被搜索引擎所收录。
  2. 更加安全:URL可能会暴露资源存放的具体位置,避免被不怀好意的人利用。
  3. 网站地址跳转:如访问80端口,跳转到443端口。
地址重写指令:
if , return ,rewrite ,set
  1. if
  • 语法

    if  (判断条件)  {
         
    
    }
    
    支持的判断符号有:~ ,~* ,!~ ,!~*,-f和!-f ,-d和!-d,-e和!-e,-x和!-x
    
~ 匹配正则,区分大小写
~* 匹配正则,不区分大小写
!~ 不匹配正则,区分大小写
!~* 不匹配正则,不区分大小写
-f和!-f 是否存在文件
-d和!-d 是否存在目录
-e和!-e 是否存在文件或目录
-x和!-x 文件是否可执行
  • 支持server和location
  1. return:返回客户端一个地址。
  2. rewrite:根据表达式重定性url,或修改字符串。
  • 语法:rewrite 原地址 目标地址 flag
  • flag:
last 表示完成rewrite,一般在if和server语句中,不终止重写后的url
break 完成本条规则后不在匹配其他的,一般在location中
redirect ==302 返回带有302代码的临时重定向,浏览器地址会显示跳转后的URL地址。
permanent ==301 返回301代码的永久重定向,浏览器地址栏会显示跳转后的URL地址。

redirect和permanent有一定区别,301会将老地址数据带到新地址上,搜索引擎会把老地址彻底废除,302重定性时,搜索引擎会查看跳转前后哪一个地址更直观而自己选择是否跳转,所以会出现网页劫持现象。

  1. set:定义一个变量并且赋值。
  • 可用于(server location if)
地址重写的十个经典实例:
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值