00:00
嗨,同学们,刚刚呢,我们在这个location下带着大家一起配置的这个,呃,动静分离是吧?那接下来带着大家来配置一下UR re这URL rewrite呢也是比较实用的一个功能,它能隐藏我们真实的呃后端后端服务器的这个物理的地址在这呢,我们直接给大家举一个例子啊,我们来看一下。呃,看到这个零四,这是上面在跑入我们的tomcad对吧,刚刚呢,我把这个,呃,我们的那个页面呢,给改了一下,呃,也就是那个。嗯,我们的faq那个之前是一个静态的HTML嘛,啊,我们把它改成了一个真正的JSP在这里边呢,呃,引入了这个,呃。分页的这个功能啊,当然这个也是一个简单的,嗯。这个功能虽然简单,但是和你实际的这个企业级里边的这个应用其实是一样的啊,你在那个企业里边的这个分页也可以照着这么改,我们先访问一下我们现在这个动态的这个效果是啥样的哈。
01:00
啊,大家可以看,这是现在反向代理过去的效果,然后如果不反向代理的话,我们看一下应该是104。哎,不好意思,听错了。应该是这个104。104下的,呃,这个8080端口是吧,这就是我们的这个。呃哦对,确实是这样啊,它不显示样式了,对吧,因为它这个他们看上没有这个样式,它显示结果呢,在这多了一个当前显示的是第几页,如果我们要是能。呃,把参数的传递过去,比如说呃index.jsp,然后斜杠,然后问号这个配置。Number。大写的number等于一,然后呢,他在下面呢,就会显示当前是第一页啊,如果是第100页。它就会给我们显示第100页,那同样道理,在我们这个反向代理服务器上做的这个动静分离,在这也可以这么干,就是问号,你可以省略这个index.jsp啊,直接问号啊,这配置number等于一,然后这就会显示第一页啊,配置等于二,就会显示第二页,那我们做这个UR主要的目的就是把这个真正的这个index.ph这个JSP。
02:26
给它给隐藏了,不让他去显示这个啊,大概最后得到的效果是这个样子的。呃,在用户访问这个地址的时候。呃。是不是比较长比较麻烦,对吧,而且还暴露了我们的入参什么的,对吧?啊,我们可以完全把它给隐藏一下,变成这个样子。比如说嗯,让它伪静态一下对吧,这边呃2.html,这样就能访问到我们这个配置,Number等于二,诶这是不是看起来比较神奇啊,但是配置起来呢,其实很简单,我带大家来简单的配置一下哈,首先呢,先找到我们的这个呃配置文件。
03:13
还是这个N几点CNF,然后给他打开。这是我们之前配置的反向代理和这个静态的资源,对吧,然后我们要用到这个UR rewrite的话,其实呢,就是这个用这个关键字,这process呢不动啊,还留在这儿。因为真正的请求呢,还是要代理到后端的服务器上,在这呢用关键字UR rewrite。Rewrite啊,然后后边呢,接下来跟什么呢?跟我们这个正则表达式,这正则表达式啊,还是以这个小尖尖开头,然后以这个Dollar结尾。啊,这里边呢,写正则,然后最后呢,在后边啊,写上这个我们想要呃,转变的这个地址,这就是原来的这个真实地址啊,这真实地址可能是啥,可能是这样的啊呃,Index。
04:10
点JSP,然后呃,问号是吧,然后这个配置。Number。等于啥对吧?啊,这是我们这个U这个规则,然后在最后边的,还有它这个发这种形式啊,啊还有这个dire,还有什么什么都可以,我们在这呢,先写一个。我们呢,先整一个这个静态的,比如说啊,我们把这个二点。HTML。给他,呃。给它给这个这个隐藏一下啊,把这个真实的地址呢,给它换成这个啊,大家可以看啊。啊,然后在这前面呢,加一个斜线,我们试一下看看能不能在访问二点二天的时候呢,直接给它跳转到这个第二页上啊,重启一下,呃,不叫重启了啊。
05:05
Reload一下我们的这个。NG。然后。嗯,访问一下看看。呃,192101对吧,这是代理过去的,然后我们访问斜杠2.html。看看来正常能访问过去对吧,现在显示第二页,但是我本机其实没有这个二点二天苗这个页面,大致这个流程大家理解了吧,就是我们在访问我们这个反向代理服务器的时候,我们在这儿配置的是他访问的这个地址是二点二天秒,然后真实转发的地址呢,在这儿。只要他匹配上之后,他就给他转发过去,当然现在是不带参数的,只只是给他写死的,你看我们试一下这个3.h名。这就404了,他找不到对吧,因为没有匹配上嘛,它真的只能匹配二点二天苗,那在这儿呢,我们写一个简单的正则给大家,把这所有的数字呢,都给它匹配上。
06:05
呃,这个动词啊,我们之前在那个location那也写过,对吧,就拿这个方括号零到九。这是表示这个范围零到九都可以,然后呢,我们可以有可以有好多啊,零到九就是数字,任意的数字可以有好多位在这儿,我们需要拿这个括号给它给括起来啊,这才表示它是一个呃,我们在UR right时候的这么一个入参的参数,然后这边呢,相当这个这个想必啊,也必须得替换一下,对吧,我们现在是配置你固定给他二,你不管这输入啥,它都是跳到第二页了。在这呢,用这个呃,Dollar。Dollar,然后加上12345这一个就代表它第一个匹配的规则,如果匹配的内容比较多啊,你可以在后边再跟上234,这是第一个啊,然后我们接下来试一下CTRLS保存。然后再reload一下。
07:02
也可以一样,再刷新看这个三这第三页三点日天是不是也可以了啊,同样啊,6663。也可以啊,那6663A行不行,你们猜。不行,因为这个正则匹配不上啊,这个大家理解了吧,这就是我们去这个匹配这个呃。这个这个这个动态这个效果,这个JSP页面很简单啊,需要的话可以自取,然后也在资料里边呢,给大家提供了,然后在匹配的时候呢,还有很多其他的这个呃,一些用法,呃,在最后的结尾,刚才我们用的是break对吧,我们看一下。我们用的是break,这个break啊呃,它的意思就是在匹配这个我们的这个呃规则的时候,Rewrite这后边这个规则的时候,一旦要是匹配上了当前这一条,直接就返回,然后不会再往下继续匹配了啊,然后接下来呢,就就会进入这个pro pro这个阶段,当然还有其他可以选的,还有这个。
08:11
Last它还会再继续往下匹配啊,匹配到最新的这一个,然后最后才返回啊,而不是匹配到一个就返回,所以在这个,呃,我们的这个rewrite这个阶段啊,它也是有优先级这个区分的,只要你匹配了break,这优先级是最高啊,另外还有两种,一个是还有一个是这个。这两种方式呢,呃,和刚才这两种有点不一样,刚才这两种呢,只是说它它这个匹配的优先级的问题啊,这是直接是在我们匹配完之后,它显示的效果上会有区别啊,我们在这呢,用这redirect试一下。
09:00
我们再重新加载一下服务。接下来我们再访问这个663A肯定是不行的啊,666来看,诶,看见这个地址了吗?他会给我们直接跳转到这个真实的地址上,相当于发送了这个300的请求,301或者302。这301或者302的请求呢,会改变这个URURL这个地址,把真实的地址给我们带出来,那这两个。那这两个的区别是啥?Direct会返回这个302的临时重定向啊,这个permanent会返回301啊永久重定向,这个301和302它区别呢,在我们实际给用户真实的用户就们用户人啊去用的时候,其实是没有任何区别的,他都会跳转,然后这个URL都会发生变化。这个临时重定向和永久重定向。这是给。我们的这个网络爬虫啊,给他来看的,比如说我们的百度过来扒我的网页了,然后到这儿呢,我给他的一个302,这是临时重定向,临时跳转过去,那接下来呢,有可能过一段时间呢,你再访问当前这个页面啊,还可以去扒到数据。
10:16
这是给浏览器看的,如果要是301的话,这就是永久重零教,接下来你就永远去帮我去记录接下来这个地址就可以了,给浏览浏这个浏览器给我们用户来看的话,其实没什么太大区别的。啊,这就是URL的rewrite URL rewrite呢,还可以匹配很多其他的规则,我们在呃,后续进阶的课程当中呢,再继续给大家深入讲解。
我来说两句