Nginx中如何进行rewrite模块应用
发表于:2026-11-03 作者:千家信息网编辑
千家信息网最后更新 2026年11月03日,这篇文章将为大家详细讲解有关Nginx中如何进行rewrite模块应用,文章内容质量较高,因此小编分享给大家做个参考,希望大家阅读完这篇文章后对相关知识有一定的了解。实验环境Linux CentOS7
千家信息网最后更新 2026年11月03日Nginx中如何进行rewrite模块应用
这篇文章将为大家详细讲解有关Nginx中如何进行rewrite模块应用,文章内容质量较高,因此小编分享给大家做个参考,希望大家阅读完这篇文章后对相关知识有一定的了解。
实验环境
Linux CentOS7虚拟机(IP:192.168.52.132)
win10虚拟机(作为测试机)
1、安装Nginx和bind服务
[root@localhost ~]# rpm -Uvh http://nginx.org/packages/centos/7/noarch/RPMS/nginx-release-centos-7-0.el7.ngx.noarch.rpm获取http://nginx.org/packages/centos/7/noarch/RPMS/nginx-release-centos-7-0.el7.ngx.noarch.rpm警告:/var/tmp/rpm-tmp.PtKluI: 头V4 RSA/SHA1 Signature, 密钥 ID 7bd9bf62: NOKEY准备中... ################################# [100%]正在升级/安装... 1:nginx-release-centos-7-0.el7.ngx ################################# [100%][root@localhost ~]# yum install nginx bind -y ..........//省略安装过程
2、修改主配置文件named.conf
[root@localhost sbin]# vim /etc/named.confoptions { listen-on port 53 { any; }; //127.0.0.1改为any 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; }; //localhost改为any[root@localhost sbin]#3、修改区域配置文件named.rfc1912.zones
[root@localhost sbin]# vim /etc/named.rfc1912.zoneszone "old.com" IN { //添加一个区域信息 type master; file "old.com.zone"; allow-update { none; };};[root@localhost sbin]#4/修改区域数据配置文件
[root@localhost sbin]# cd /var/named/[root@localhost named]# lsdata dynamic named.ca named.empty named.localhost named.loopback slaves[root@localhost named]# cp -p named.localhost old.com.zone //复制模板并命名[root@localhost named]# vim old.com.zone $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.52.132 //添加解析地址[root@localhost named]#
5、开启dns服务和Nginx服务
[root@localhost named]# systemctl start named //开启dns服务[root@localhost named]# systemctl stop firewalld.service //关闭防火墙[root@localhost named]# setenforce 0 //关闭增强性安全功能[root@localhost named]# systemctl start nginx //开启Nginx服务[root@localhost named]# netstat -ntap | grep 80 //查看端口tcp 0 0 0.0.0.0:80 0.0.0.0:* LISTEN 51197/nginx: master [root@localhost named]#
6、设置win10主机的dns地址为192.168.52.132
7、用win10主机测试能否解析(解析成功)
应用实例1--基于域名的跳转
现在公司旧域名 www.old.com 有业务需求有变更;
需要使用新 域名 www.new.com 代替,但是旧域名不能废除;
需要跳转到新域名上,而且后面的参 数保持不变。
1、修改配置文件,设置域名跳转
[root@localhost named]# cd /etc/nginx/[root@localhost nginx]# vim conf.d/default.conf #修改配置文件server { listen 80; server_name www.old.com; #charset koi8-r; access_log /var/log/nginx/www.old.com-access.log main; location / { if ($host = "www.old.com") { #匹配如果域名是老域名 rewrite ^/(.*)$ http://www.new.com/$1 permanent; #则永久设置跳转新域名 } root /usr/share/nginx/html; index index.html index.htm; }2、添加新域名解析
[root@localhost nginx]# vim /etc/named.rfc1912.zones zone "new.com" IN { type master; file "new.com.zone"; #new区域数据配置文件 allow-update { none; };};[root@localhost nginx]# cd /var/named/[root@localhost named]# lsdata dynamic named.ca named.empty named.localhost named.loopback old.com.zone slaves[root@localhost named]# cp -p old.com.zone new.com.zone#复制区域数据配置文件为kgc的数据配置文件[root@localhost named]# systemctl restart named #重启解析服务[root@localhost named]# systemctl restart nginx #重启nginx服务[root@localhost named]#3、用老域名访问,查看跳转
4、老域名后加上参数,查看跳转新域名时是否有参数

应用实例2--基于客户端 IP 访问跳转
所有IP 访问任何内容都显示一个固定维护页面,只有公司 IP :192.168.52.129访问正常。
1、查看win10主机IP地址
2、修改Nginx默认配置文件
[root@localhost named]# vim /etc/nginx/conf.d/default.confserver { listen 80; server_name www.old.com; #charset koi8-r; access_log /var/log/nginx/www.old.com-access.log main; #设置是否合法的IP标志 set $rewrite true; #判断是否为合法IP if ($remote_addr = "192.168.52.128"){ #win10主机ip为192.168.52.129,此时129为不合法ip set $rewrite false; } #非法IP进行判断打上标记 if ($rewrite = true){ rewrite (.+) /main.html; } #匹配标记进行跳转站点 location = /main.html { root /usr/share/nginx/html; } location / { root /usr/share/nginx/html; index index.html index.htm; }3、创建非法IP站点及main的网页页面
[root@localhost named]# cd /usr/share/nginx/html/ #切换到站点中[root@localhost html]# ls50x.html index.html[root@localhost html]# vim main.html #编辑非法IP访问网页内容this is error page
[root@localhost html]# systemctl restart nginx #重启Nginx服务[root@localhost html]#
4、win10主机访问网页(此时win10ip为不合法ip)
5、修改Nginx默认配置文件
[root@localhost html]# vim /etc/nginx/conf.d/default.conf #判断是否为合法IP if ($remote_addr = "192.168.52.129"){ #将合法ip改为win10主机IP地址 set $rewrite false; }[root@localhost html]# systemctl restart nginx #重启服务[root@localhost html]#6、再次用win10主机访问网页
应用实例3--基于旧域名跳到新域名后面加目录
例如现在访问的是 http://bbs.accp.com,现在需要将这个域名下面的发帖都跳转到 http://www.accp.com/bbs,注意保持域名跳转后的参数不变。
1、修改Nginx默认配置文件
[root@localhost html]# vim /etc/nginx/conf.d/default.conf #修改默认配置文件server { listen 80; server_name bbs.old.com; #修改服务名称 #charset koi8-r; access_log /var/log/nginx/www.old.com-access.log main; location /post { #用location匹配post目录 rewrite (.+) http://www.old.com/bbs$1 permanent; #永久重定向跳转 } location / { root /usr/share/nginx/html; index index.html index.htm; }2、修改dns的区域数据配置文件(old.com.zone)
[root@localhost html]# cd /var/named/[root@localhost named]# lsdata dynamic named.ca named.empty named.localhost named.loopback new.com.zone old.com.zone slaves[root@localhost named]# vim old.com.zone #修改区域数据配置文件$TTL 1D@ IN SOA @ rname.invalid. ( 0 ; serial 1D ; refresh 1H ; retry 1W ; expire 3H ) ; minimum NS @ A 127.0.0.1bbs IN A 192.168.52.132 #www改为bbs[root@localhost named]# systemctl restart named #重启解析服务[root@localhost named]# systemctl restart nginx #重启Nginx服务[root@localhost named]#
3、用win10主机测试网页
应用实例4--基 于 参 数 匹 配 的 跳 转
http://www.accp.com/100-(100|200)-100.html 跳转到 http://www.accp.com 页面。
1、修改Nginx默认配置文件
[root@localhost named]# vim /etc/nginx/conf.d/default.confserver { listen 80; server_name www.old.com; #charset koi8-r; access_log /var/log/nginx/www.old.com-access.log main; if ($request_uri ~ ^/100-(100|200)-(\d+).html$) { #匹配正则开头为100-(100|200)-一次多次的整数html为结尾的 rewrite (.*) http://www.old.com permanent; #永久重定向跳转到主页 }2、修改dns区域数据配置文件
[root@localhost named]# vim /var/named/old.com.zone #修改区域数据配置文件$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.52.132[root@localhost named]# systemctl restart named #重启解析服务 [root@localhost named]# systemctl restart nginx #重启解析服务 [root@localhost named]#
3、用win10主机测试网页
应用实例5--基于目录下所有 php 结尾的文件跳转
1、修改Nginx默认配置文件
[root@localhost named]# vim /etc/nginx/conf.d/default.conf #修改默认配置文件server { listen 80; server_name www.old.com; #charset koi8-r; access_log /var/log/nginx/www.old.com-access.log main; location ~* /upload/.*\.php$ { #匹配不分大小写,匹配upload后零次或多次以.php为结尾的 rewrite (.+) http://www.old.com permanent; #跳转到首页 }[root@localhost named]# systemctl restart nginx #重启Nginx服务[root@localhost named]#2、用win10主机测试网页
应用实例6--基于最普通一条 url 请求的跳转到首页
1、修改Nginx默认配置文件
[root@localhost named]# vim /etc/nginx/conf.d/default.conf #修改Nginx默认配置文件server { listen 80; server_name www.old.com; #charset koi8-r; access_log /var/log/nginx/www.old.com-access.log main; location ~* ^/abc/123.html { #匹配某一个特定的网页 rewrite (.+) http://www.old.com permanent; #跳转到首页 } location / { root /usr/share/nginx/html; index index.html index.htm; }[root@localhost named]# systemctl restart nginx #重启Nginx服务[root@localhost named]#2、用win10主机测试网页
关于Nginx中如何进行rewrite模块应用就分享到这里了,希望以上内容可以对大家有一定的帮助,可以学到更多知识。如果觉得文章不错,可以把它分享出去让更多的人看到。
文件
配置
域名
服务
主机
区域
网页
应用
数据
实例
测试
合法
内容
地址
参数
目录
页面
永久
首页
模块
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
互联网络科技
科技互联网产品
互联网属科技
互联网科技深圳
上海喔噻互联网科技
壕鑫互联网络科技
互联网科技logo
科技类的互联网平台
华脉科技工业互联网产品
湖南洣水互联网科技有限公司扣款
互联网还是高科技吗
语蝶互联网科技有限公司
广西互联网科技孵化中心
内蒙古九一互联网科技
高科技互联网套路
广州燕处互联网科技有限公司
数字科技和互联网金融哪个好
网互联网络科技
互联网企业和网络科技有限公司
伍佰万互联网科技是干嘛的
互联网科技
互联网科技卖菜
齐家互联网科技
齐家互联网科技有限公司
中国科技互联网公司收入
互联网金融科技公司干啥的
互联网5g黑科技有哪些
河南住房之家互联网科技
数字互联网科技有限公司
重庆科技产业互联网有哪些