Nginx服务——rewrite模块应用实战
发表于:2026-11-01 作者:千家信息网编辑
千家信息网最后更新 2026年11月01日,Nginx服务--rewrite模块应用实战Demo 1:基于域名的跳转 应用场景: 原域名即将不可用,现用新的域名代替 理论结果: 输入旧域名,自动跳转到新域名,且其它参数不变DNS方向[roo
千家信息网最后更新 2026年11月01日Nginx服务——rewrite模块应用实战
Nginx服务--rewrite模块应用实战
Demo 1:基于域名的跳转
应用场景: 原域名即将不可用,现用新的域名代替
理论结果: 输入旧域名,自动跳转到新域名,且其它参数不变
DNS方向
[root@localhost ~]# rpm -Uvh http://nginx.org/packages/centos/7/noarch/RPMS/nginx-release-centos-7-0.el7.ngx.noarch.rpm //yum库升级获取http://nginx.org/packages/centos/7/noarch/RPMS/nginx-release-centos-7-0.el7.ngx.noarch.rpm警告:/var/tmp/rpm-tmp.zvmFF2: 头V4 RSA/SHA1 Signature, 密钥 ID 7bd9bf62: NOKEY准备中... ################################# [100%]正在升级/安装... 1:nginx-release-centos-7-0.el7.ngx ################################# [100%][root@localhost ~]# yum install nginx -y #安装nginx服务[root@localhost ~]# yum install bind -y[root@localhost ~]# vim /etc/named.conf ###按照下面进行修改options { listen-on port 53 { any; }; #监听所有的53端口 listen-on-v6 port 53 { ::1; }; directory "/var/named"; dump-file "/var/named/data/cache_dump.db"; statistics-file "/var/named/data/named_stats.txt"; memstatistics-file "/var/named/data/named_mem_stats.txt"; recursing-file "/var/named/data/named.recursing"; secroots-file "/var/named/data/named.secroots"; allow-query { any; }; #允许所有通过[root@localhost ~]# vim /etc/named.rfc1912.zones####添加如下zone "test.com" IN { type master; file "named.test";};[root@localhost ~]# cp -p /var/named/named.localhost /var/named/named.test[root@localhost ~]# vim /var/named/named.test#####按照下面进行修改$TTL 1D@ IN SOA @ rname.invalid. ( 0 ; serial 1D ; refresh 1H ; retry 1W ; expire 3H ) ; minimum NS @ A 127.0.0.1www IN A 192.168.142.128[root@localhost ~]# systemctl start named[root@localhost ~]# systemctl stop firewalld.service [root@localhost ~]# setenforce 0Nginx方向
[root@localhost ~]# vim /etc/nginx/conf.d/default.conf####按下面进行更改server { listen 80; server_name www.test.com; #指定域名 charset utf-8; #指定字符集 access_log /var/log/nginx/test.com-access.log main; #指定access日志文件位置[root@localhost ~]# systemctl start nginx[root@localhost ~]# netstat -atnp | grep nginx tcp 0 0 0.0.0.0:80 0.0.0.0:* LISTEN 4028/nginx: master此时,能够对原域名进行正常的访问
为了满足实验要求,现对新域名添加dns区域
[root@localhost ~]# vim /etc/nginx/conf.d/default.conflocation / {####在location后面添加下面两行 if ($host = 'www.test.com') { rewrite ^/(.*)$ http://www.yun.com/$1 permanent; }[root@localhost ~]# vim /etc/named.rfc1912.zones###为新域名增添新的dns区域zone "yun.com" IN { type master; file "named.yun";};[root@localhost ~]# cp -p /var/named/named.test /var/named/named.yun[root@localhost ~]# systemctl restart named[root@localhost ~]# systemctl restart nginx实验成功,成功从旧域名自动跳转到新域名
Demo 2:基于客户端IP跳转
应用场景: 网站维护时仅有个别用户能够正常进行访问,其余用户仅能访问维护页面
理论结果: 一台客户机进行访问时自动进行IP比对,按表进行分类
DNS方向
同Demo 1,不用进行改变。
Nginx方向
[root@localhost ~]# vim /etc/nginx/conf.d/default.conf####按下面进行添加 location / { root /usr/share/nginx/html; index index.html index.htm; } set $ip true; #设定变量为true if ($remote_addr = "192.168.142.129") { #匹配IP地址为"192.168.142.129"时 set $ip false; #变量变更为false } if ($ip = true) { #匹配变量为true时 rewrite ^/(.*)$ /weihu.html; #跳转网页到维护页面 } location = /weihu.html { #匹配到维护页面时 root /usr/share/nginx/html; #指定网页站点 }[root@localhost ~]# systemctl restart nginx此时,根据不同的ip地址,将会浏览到不同的页面(正常页面/维护页面)
Demo 3:基于旧、新域名跳转并添加目录
应用场景: 将域名http://bbs.test.com下面的发帖都跳转到 http://www.test.com/bbs,且域名跳转后保持参数 不变
[root@localhost ~]# vim /etc/nginx/conf.d/default.conf###按照下面进行修改,在location段下面添加location /new {# if ($request_uri ~* ^/new) { rewrite /?(.*) http://www.test.com/bbs/$1 permanent;}[root@localhost ~]# systemctl restart nginx
Demo 4:基于参数匹配跳转到指定页面
应用场景: 用户在输入域名后,误输入了全为数字的错误页面,应用后将自动跳转回指定页面
理论结果: 基于正则表达式的选择
DNS方向
同上面所有,无需进行更改
Nginx方向
[root@localhost ~]# vim /etc/nginx/conf.d/default.conf###按照下面进行修改,在location段下面添加if ($request_uri ~* ^/(\d*).html$) { #匹配以所有数字结尾的html文件 rewrite (.*) http://www.test.com permanent; #匹配零字或多字跳转到网站主页 }[root@localhost ~]# systemctl restart nginx此时,在域名后添加一段数字组成的html网页将自动跳转回主页。例:http://www.test.com/123456.html→http://www.test.com/
Demo 5:基于PHP文件、具体页面跳转回首页
基于PHP文件
[root@localhost ~]# vim /etc/nginx/conf.d/default.conf###按照下面进行修改##location段后添加location ~* /upload/(.+)\.php$ { #基于全部php文件 rewrite (.*) http://www.test.com permanent; }[root@localhost ~]# systemctl restart nginx没啥可说的,以php的文件均会自动跳转回首页
基于具体html页面
[root@localhost ~]# vim /etc/nginx/conf.d/default.conf###按照下面进行修改##location段后添加 location ~* /test.html$ { #基于具体的html网页 rewrite (.*) http://www.test.com permanent; }[root@localhost ~]# systemctl restart nginx同上,访问某个具体网页文件就会跳转回首页
基于任意的html页面
[root@localhost ~]# vim /etc/nginx/conf.d/default.conf###按照下面进行修改##location /后面添加 if ($request_uri ~* ^/new/(.+)\.html$) { #匹配到任意html页面 rewrite (.*) http://www.test.com permanent; #跳转到首页 }[root@localhost ~]# systemctl restart nginx此时,访问任意的html格式的网页将自动跳转到首页
感谢阅读!!
域名
页面
文件
应用
方向
网页
首页
场景
参数
变量
数字
理论
用户
结果
输入
服务
不同
成功
主页
区域
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
互联网科技工作委员会副主任毛军
互联网电商科技
互联网科技深圳
电子科技大学互联网
互联网科技博客
互联网金融和金融科技
盛创互联网科技有限公司
中正互联网科技招聘
湖南洣水互联网科技有限公司扣款
岳阳华臻互联网科技有限公司
黑科技闪耀互联网之光
中国互联网十大科技股排名
河南住房之家互联网科技
南通创西澳互联网科技有限公司
图游互联网科技
郑州欣桑互联网科技有限公司
同城互联网络科技
互联网科技职业技能培训学校
互联网科技的前景
互联网科技大佬云集
中资互联网科技
互联网科技论文
米客互联网科技
撒么互联网科技公司
互联网科技英文翻译
中国科技互联网公司收入
玉溪互联网科技怎么选
区块链结合互联网科技
互联网科技创新创业项目
科技美学互联网 艺术