nginx伪静态(超级简单)
由于只是学习伪静态就自己配个host随便玩了,也没多写配置文件,注意是伪静态
上面的一条伪静态(rewrite)是将访问wojiuwangla.com/wangla.html给301(重定向)到百度。
首先配置host,我的电脑是win10的,host文件在C:\Windows\System32\drivers\etc\hosts
访问结果
访问域名,正常返回,然后访问伪静态试试看
别激动,还没敲回车
Look,结果出来了,从http://wojiuwangla.com/aa.html跳转到百度了。
伪静态需要用到的正则匹配,只是copy了一部分
Copy以下的正则来源:https://www.jb51.net/article/91444.htm
平时常用的:
~ 为区分大小写的匹配。
~* 不区分大小写的匹配(匹配firefox的正则同时匹配FireFox)。
!~ 不匹配的
!~* 不匹配的
. 匹配除换行符以外的任意字符
\w 匹配字母或数字或下划线或汉字
\s 匹配任意的空白符
\d 匹配数字
\b 匹配单词的开始或结束
^ 匹配字符串的开始
$ 匹配字符串的结束
* 重复零次或更多次
+ 重复一次或更多次
? 重复零次或一次
{n} 重复n次
{n,} 重复n次或更多次
{n,m} 重复n到m次
*? 重复任意次,但尽可能少重复
+? 重复1次或更多次,但尽可能少重复
?? 重复0次或1次,但尽可能少重复
{n,m}? 重复n到m次,但尽可能少重复
{n,}? 重复n次以上,但尽可能少重复
\W 匹配任意不是字母,数字,下划线,汉字的字符
\S 匹配任意不是空白符的字符
\D 匹配任意非数字的字符
\B 匹配不是单词开头或结束的位置
[^x] 匹配除了x以外的任意字符
OK,刚才只是热身,接下来继续
这次多添加了两条新规则
1:访问wojiuwangla.com/wangla.html跳转到百度
2:访问wojiuwangla.com/纯数字至少一个数字.html跳转到QQ官网
3:访问wojiuwangla.com/匹配字母或数字或下划线组合.html 跳转到问道官网(有没有 道十二 的道友)
重启完访问试试看
回车后结果
已经跳转了,因为我们的伪静态是\d变量匹配,所以我们输入其他数字也是会跳转
OK,让我们试试下一条伪静态
回车后结果
也跳转了,我们再试试数字字母,数字下划线,数字字母下划线组合之后的结果
OK,然后我们在试试在本地服务器上进行伪静态跳转
创建测试页面
修改配置文件,添加网站根目录,以及修改伪静态规则,因为上面两条影响的太大,无论你是什么开头,只要是html结尾的就会跳转到相应的网站。
记得清楚浏览器缓存,否则可能会出现还是返回问道官网的页面
访问结果如下
接下来把固定的伪静态改一下,这样的话,访问符合条件的php文件都会跳到相对应的html上,比如访问/index-3.php就会跳转到/index.html上。
规则没有太多变化,只不过把第一个正则参数(\w+)写到要显示的对应的路径上了,第一个参数是$1,第二个是$2
再创建个文件测试真实性
不好意思,我没配置php,我给php改个名
OK,再试试看
换成test试试
OK,都已经跳转,我们尝试多个参数
文件也改名了,好了,再试试看,千万记住,修改完配置文件必须重启/重载,要不不会生效
OK,再了解一下长度限制,
访问结果
rewrite "^/3-(\d{3,6}).php$" /3-$1.html permanent;
前面那一段需要用双引号引住,否则会被nginx认为}配置文件已经结尾了,然后报错。
{4,}代表最少4位数。最多无穷大。
伪静态大致应该就是这样的,可以在加多个参数后面跟不同的变量,根据自己的需求调整,万变不离其宗,可以在这些的基础上面修改,多个参数就是(\w+)-(\d+)-(\w+)这种的,后面跟$1-$2-$3一般来说不会轻易让(\w+)(\d+)挨着,\w包括了数字字母下划线而且有+号,代表不止是一个,如果匹配os91f0_31na2222这个字符串的话,直接用一个(\w+)就可以的,不用再多写个(\d+),也可以精确写成(\w+)na(\d+)。
还得说一点,注意伪静态的顺序,
比如你的第一条是
^(.*)/$ https://www.baidu.com/ last;
第二条是
^/test/$ https://www.qq.com/ last;
这样的话第二条不会生效
#####################################更新一下
刚刚发现之前写的有些漏洞,后来查阅其他博主的文章又深入了解了一下,这里给大家分享一下last,break的用法。
下方内容来自于Nginx中last和break redirect和permanent区别和联系_运维_PHP面试网https://www.phpmianshi.com/?id=98
server
{listen 80;server_name wojiuwangla.com;index index.html index.htm index.php;default_type text/html; #这一条一定要有,否则浏览器访问会提示下载root /usr/share/nginx/html; location /break/ {rewrite ^/break/(.*) /test/$1 break;return 200 "break page";}location /last/ {rewrite ^/last/(.*) /test/$1 last;return 200 "last page";}location /test/ {return 200 "test page";}rewrite ^/sort/(.*) /test/$1 last;location /sort/ {return 200 "sort page";}}
1. 输入 http://wojiuwangla.com/break/
返回404, rewrite后在本location没找到test匹配规则,所以404,符合 "rewrite后不会跳出location 作用域。它的生命也在这个location中终结"
2. 输入 http://wojiuwangla.com/last/
返回 test page 符合:rewrite 后会跳出location 作用域,重新开始再走一次刚刚的行为
3. 输入 http://wojiuwangla.com/sort/
返回 test page
我们把 :rewrite ^/sort/(.*) /test/$1 last; 放到最后一行输出结果也是一样的 说明:交换rewrite和location位置,执行结果不变,说明这个和位置无关
nginx伪静态(超级简单)相关推荐
- zblog php伪静态,ZBLOG PHP版本Apache和Nginx伪静态规则以及设置方法
一般而言,如果我们个人搭建网站挂一个博客程序就可以实现站长的梦想(有很多知名个人博主,单单一个博客就能叱咤网络风云),我们搭建网站肯定会选择一款体贴的CMS,不需要复杂的内容管理系统,也不需要难以运营 ...
- Nginx伪静态配置和常用Rewrite伪静态规则集锦
伪静态是一种可以把文件后缀改成任何可能的一种方法,如果我想把php文件伪静态成html文件,这种相当简单的,下面我来介绍nginx 伪静态配置方法 nginx里使用伪静态是直接在nginx.conf ...
- nginx伪静态规则
nginx伪静态规则 要将http://dede.com/index.php?t=3用伪静态规则改写成http://dede.com/t3.html,即可在nginx的conf/nginx.conf里 ...
- php 自定义超全局,一个超级简单的 PHP 超全局变量管理扩展
一个超级简单的 PHP 超全局变量管理扩展(自卖自夸) 介绍 SG 全称 Superglobals,它的诞生为了方便快捷操作 PHP 预定义的超全局变量,用户定义的超全局变量. 如果在非 CLI 模式 ...
- 教你一招超级简单的方法快速搞定grub.conf文件的丢失及损坏
教你一招超级简单的方法快速搞定grub.conf文件的丢失及损坏 实验环境: GRUB是大多数Linux系统默认使用的引导程序,当"/boot/grub/grub.conf"配置文 ...
- yum源的超级简单配置
yum源的超级简单配置 1.先挂载光盘. 使用命令"mount -o loop /dev/sr0 /mnt/cdrom".如果使用命令"mount -o loop ...
- Yii2配置Nginx伪静态的方法
这篇文章主要介绍了Yii2配置Nginx伪静态的方法,结合实例形式分析了Yii2框架针对Nginx伪静态的相关配置技巧,需要的朋友可以参考下 本文实例讲述了Yii2配置Nginx伪静态的方法.分享给大 ...
- 深入浅析nginx部署及简单优化
Nginx是lgor Sysoev为俄罗斯访问量第二的rambler.ru站点设计开发的.本文重点给大家介绍nginx部署及简单优化方案,感兴趣的朋友一起看看吧 Nginx是lgor Sysoev为俄 ...
- 一款超级简单的瀑布流的制作
2019独角兽企业重金招聘Python工程师标准>>> 这款是在网上学习制作的,原理那啥的超级简单...话不多说,直接上代码 <!DOCTYPE html> <ht ...
- 哈,又一款超级简单的队列(MQ)实现方案来了~
开源的消息队列已经很多了,但大部分很重,实际环境下,很多可能只是使用到了一点功能而已,杀鸡使用牛刀,着实有些浪费了.很多时候,我们只想要一片绿叶,但它们给了我们整个的春天,很难消化.本着DIR精神, ...
最新文章
- 潜移默化学会WPF--线程巧用(一)
- BLE-NRF51822教程15-BLE地址
- JAVA NIO是什么(zz)
- Android 编程下快捷图标的创建
- [css] 固定的外框尺寸,里面的图片尺寸不固定,如何让图像自适应外框呢?
- 修改无效_解决docker部署gitlab时,clone地址无效和修改默认端口
- dll加载问题的解决方法
- 跨路由器 网段访问rtsp_实验演示:三层交换机与路由器对接
- C和C++ const的声明差异
- 程序员代码面试指南读书笔记1
- GC算法精解(分代搜集算法)
- 文本去重Linux,Shell实现文本去重并操持原有顺序
- Linux命令行运行多线程程序 和 QT集成IDE下运行多线程程序的问题。
- ORA-01722:invalid number
- 微信小程序开发 uniapp【bug修复】点击事件 传值 数据结构错误 $orig
- java中判断字符是否为英文字母、中文汉字或者数字
- 数字IC设计学习笔记(一)——逻辑综合简介
- java将时间撮转成日期,Java将时间戳转换为日期
- Windows和Mac OS的伽马值
- 关于ucore实验一的资料查找
热门文章
- 现在入手iPhone SE合适吗
- 黄河水利职业技术学院计算机专业分数,考多少分才能上黄河水利职业技术学院 录取分数是多少...
- uniapp手写_uni-app框架纯手写微信小程序开发左侧滑动菜单
- vue ssr java_Vue-SSR入门
- 用户案例|告别传统金融消息架构:Apache Pulsar 在平安证券的实践
- 开发游戏用 - AVG(冒险解密恋爱)类型的背景素材图片下载 - 合辑
- Linux学习笔记(三)-设备管理与驱动
- css改变页面滚动条样式@令狐张豪
- 【PS小技巧】PS抽丝效果制作
- 阿里云+作业帮+小红书:论剑云原生时代的 SRE与智能运维