Nginx Rewrite与实验

目录

Nginx Rewrite模块

1、Nginx跳转需求

2、rewrite跳转场景

3、rewrite跳转实现

4、Nginx常用的正则表达式

5、Rewrite命令语法

6、flag标记说明

last和break比较

使用场景    URL匹配

location 的三大类

location常用的匹配规则

location 优先级

rewrite 和 location的比较

rewrite的实验

1 基于域名的跳转


Nginx Rewrite模块

1、Nginx跳转需求

使用rewrite进行匹配
使用if匹配全局变量后跳转
使用location匹配再跳转

2、rewrite跳转场景

使url看起来更规范,合理
可将动态url地址伪装成静态地址提供服务
网址换新域名后,让旧的访问跳转到新的域名上

3、rewrite跳转实现

ngx_http_rewrite_module模块:
Nginx,支持url重写,if条件判断,但不支持else
循环最多执行10次,超过10次后Nginx将返回500错误
支持pcre(正则表达式)
重写模块set指令

4、Nginx常用的正则表达式

字符    说明
^    匹配输入字符串的其实位置
$    匹配输入字符串的结束位置
*    匹配前面的字符零次或多次
+    匹配前面的字符一次或多次
?    匹配前面的字符零次或一次
.    匹配除“\n”之外的任何单个字符
\    将后面接着字符标记为一个特殊字符或一个原义字符或一个向后引用
\d    匹配纯数字
{n,}    重复n次或更多次
{n }    重复n次
[c]    匹配单个字符c
[a-z[    匹配a-z小写字母的任意一个
[a-zA-Z]    匹配a-z小写字母或A-Z大写字母的任意一个

5、Rewrite命令语法

rewrite  正则<regex>   跳转后内容<replacement>   标记<flag>

6、flag标记说明

标记    说明
last    相当于Apache的[L] 标记,表示完成rewrite
break    本条规则匹配完成即终止,不再匹配后面的任何规则
redirect    返回302临时重定向,浏览器地址会显示跳转后的URL地址,爬虫不会更新url
permanent    返回301永久重定向, 浏览器地址栏会显示跳转后的URL地址,爬虫更新url

last和break比较
 

使用场景    URL匹配

last    一般写在server和if中    不终止重写后的url匹配
break    一般使用在location中    终止重写后的url匹配
location

location 的三大类

精准匹配:location = / {…} 精确匹配字符串
一般匹配:location / {…} 只要包含…的字符串即可
正则匹配:location ~ / {…} 按照正则表达方式匹配

location常用的匹配规则

=    进行普通字符精确匹配,也就是完全匹配
^~    表示普通字符匹配。 使用前缀匹配,如果匹配成功,则不再匹配其他 loacaion
~    区分大小写的匹配
~ *    不区分大小写的匹配
!~    区分大小写的匹配取非
@    定义一个location,使用在内部定向的时候

location 优先级

相同类型的表达式,字符串长的优先匹配
首先精确匹配 =
其次前缀匹配 ^ ~
其次是按文件中顺序的正确匹配 ~ 或 ~*
然后匹配不带任何修饰的前缀匹配
最后交给 / 通用匹配,如果没有其他匹配,任何请求都会匹配到

rewrite 和 location的比较

相同点
都可以实现跳转
不同点
rewrite实在同一域名内更改获取资源的路径
location是对一类路径做控制访问或反向代理,还可以proxy_pass到其他机器
rewrite会写在location里,执行顺序
 

rewrite的实验

1 基于域名的跳转

[root@www conf]# vim nginx.conf

    server {
listen       80;
server_name  www.kkk.com;
charset utf-8;
#access_log  /var/log/nginx/www.kkk.com-access.log;
location / {
if ($host = 'www.kkk.com'){
rewrite ^/(.*)$ http://www.bbbbb.com/$1 permanent;
 }
root   html;
index  index.html index.htm;

使用修改的网页查看是否跳转

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值