怎么查看nginx支持rewrite(nginx里的rewrite跳转的实现)
怎么查看nginx支持rewrite
nginx里的rewrite跳转的实现一. 新旧域名跳转
作用场景:基于域名的跳转,现在公司旧域名:www.peihua.com
有业务需求要变更,需要使用新域名www.zhenguo.com代替,但是旧域名不能废除。需要跳转到新域名上,而且后面的参数保持不变
配置dns,分别配置www.peihua.com(old)和www.zhenguo.com(new)解析
rpm -ivh http://nginx.org/packages/centos/7/noarch/RPMS/nginx-release-centos-7-0.el7.ngx.noarch.rpm
(必须要有官方源才能yum安装nginx)
yum install nginx -y rpm -qc nginx //查找配置文件
修改nginx的配置文件
[root@localhost ~]# vim /etc/nginx/conf.d/default.conf server { listen 80; server_name www.peihua.com; #域名修改 #charset koi8-r; access_log /var/log/nginx/peihua.com-access.log main; #日志修改 location / { #域名重定向 if ($host = 'www.peihua.com') { rewrite ^/(.*)$ http://www.zhenguo.com/$1 permanent; } root /usr/share/nginx/html; index index.html index.htm; } [root@localhost named]# systemctl restart nginx
配置域名解析
yum -y install bind #修改主配置文件 [root@localhost conf.d]# vim /etc/named.conf options { listen-on port 53 { any; }; //修改成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; }; //修改成any #修改区域配置文件 [root@localhost conf.d]# vim /etc/named.rfc1912.zones zone "peihua.com" IN { type master; file "peihua.com.zone"; allow-update { none; }; }; zone "zhenguo.com" IN { type master; file "zhenguo.com.zone"; allow-update { none; }; }; #修改区域数据文件 [root@localhost conf.d]# cd /var/named/ [root@localhost named]# cp -p named.localhost peihua.com.zone [root@localhost named]# cp -p peihua.com.zone zhenguo.com.zone [root@localhost named]# systemctl start named
浏览器测试
浏览器输入模拟访问 http://www.peihua.com/test/1/index.php(虽然这个请求内容) 是不存在的)跳转到
http://www.zhneguo.com/test/1/index.php,从headers 里面 可以看到301,实现了永久跳转,而且域名后的参数也正常跳转。
二. 基于IP访问跳转
作用场景:基于客户端IP访问跳转,例如今天公司业务版本上线,所有IP 访问任何内容都显示一个固定维护页面,只有公司IP:12.0.0.100访问正常
修改nginx配置文件
[root@localhost html]# vim /etc/nginx/conf.d/default.conf server { listen 80; server_name www.peihua.com; #charset koi8-r; charset 'utf-8'; //识别中文字符 access_log /var/log/nginx/peihua.com-access.log main; #设置是否合法的IP标志 set $rewrite ture; #判断是否为合法IP if ($remote_addr = "12.0.0.100") { set $rewrite false; } #非法IP进行判断打上标记 if ($rewrite = ture) { rewrite (.+) /maintenance.html; } #匹配标记进行跳转站点 location = /maintenance.html { root /usr/share/nginx/html; }
给maintenance.html添加自定义页面内容
[root@localhost html]# cat /usr/share/nginx/html/maintenance.html <h1>网站正在维护</h1>
浏览器测试
使用ip地址为12.0.0.100 进行访问http://www.peihua.com,可以正常访问
使用IP地址为12.0.0.99进行访问http://www.peihua.com,显示维护页面
三. 基于旧域名跳转到新域名后面加目录
作用场景:基于旧域名跳转到新域名后面加目录,例如现在访问的是http://bbs.peihua.com.
现在需要将这个域名下面的发帖都跳转到http://www.peihua.com/bbs,注意保持域名跳转后 的参数不变
修改nginx配置文件
[root@localhost named]# vim /etc/nginx/conf.d/default.conf listen 80; server_name bbs.peihua.com; #charset koi8-r; charset 'utf-8'; access_log /var/log/nginx/peihua.com-access.log main; location /post { rewrite (.+) http://www.peihua.com/bbs$1 permanent; }
注意:accp.com.zone 需要更改主机域名解析,把www改成 bbs
[root@localhost named]# cd /var/named [root@localhost named]# vim peihua.com.zone $TTL 1D @ IN SOA @ rname.invalid. ( 0 ; serial 1D ; refresh 1H ; retry 1W ; expire 3H ) ; minimum NS @ A 127.0.0.1 bbs IN A 12.0.0.25 [root@localhost named]# systemctl restart named [root@localhost named]# systemctl restart nginx
浏览器访问
浏览器访问 http://bbs.peihua.com/post/a.html,被跳转称为www.peihua.com/bbs/post/a.txt
四. 基于参数匹配的跳转
作用场景:基于参数匹配的跳转,例如现在访问 http://www.peihua.com/100-(100 | 200)-100.html
跳转到http://www.peihua.com页面
修改nginx配置文件
[root@localhost named]# vim /etc/nginx/conf.d/default.conf server { listen 80; server_name www.peihua.com; #charset koi8-r; charset 'utf-8'; access_log /var/log/nginx/peihua.com-access.log main; if ($request_uri ~ ^/100-(100|200)-(\d+).html$) { rewrite (.*) http://www.peihua.com permanent; }
注意:\d匹配一个数字,0~9之间
修改会dns,把bbs改成www
[root@localhost named]# vim peihua.com.zone $TTL 1D @ IN SOA @ rname.invalid. ( 0 ; serial 1D ; refresh 1H ; retry 1W ; expire 3H ) ; minimum NS @ A 127.0.0.1 www IN A 12.0.0.25 [root@localhost named]# systemctl restart named [root@localhost named]# systemctl restart nginx
浏览器测试
浏览器访问 http://www.peihua.com/100-200-26.html,被跳转称为 www.peihua.com首页
五. 基于所有以php结尾及基于某一个页面的跳转
修改nginx配置文件
[root@localhost named]# vim /etc/nginx/conf.d/default.conf server { listen 80; server_name www.peihua.com; #charset koi8-r; charset 'utf-8'; access_log /var/log/nginx/peihua.com-access.log main; location ~* /upload/.*\.php$ { rewrite (.+) http://www.peihua.com permanent; } [root@localhost named]# systemctl restart nginx
浏览器访问
浏览器访问 http://www.peihua.com/upload/a.php,被跳转称为 www.peihua.com
六. 基于具体的某一个页面进行跳转/abc/123.html
修改nginx配置文件
[root@localhost named]# vim /etc/nginx/conf.d/default.conf server { listen 80; server_name www.peihua.com; #charset koi8-r; charset 'utf-8'; access_log /var/log/nginx/peihua.com-access.log main; location ~* ^/abc/123.html { rewrite (.+) http://www.peihua.com permanent; } [root@localhost named]# systemctl restart nginx
浏览器访问
浏览器访问 http://www.peihua.com/abc/123.html,被跳转称为 www.peihua.com
到此这篇关于nginx里的rewrite跳转的实现的文章就介绍到这了,更多相关nginx rewrite跳转内容请搜索开心学习网以前的文章或继续浏览下面的相关文章希望大家以后多多支持开心学习网!
- nginx 处理服务器错误(nginx服务器异常502 bad gateway原因排查)
- nginx反向代理及原理(传说中的反向代理,Nginx+Apache软件配置Web服务器)
- nginx对静态文件开启缓存(nginx proxy_cache 缓存配置详解)
- django框架全面讲解(Django uwsgi Nginx 的生产环境部署详解)
- 如何采集nginx的日志(Filebeat 采集 Nginx 日志的方法)
- linux nginx部署前端项目(nginx部署多前端项目的几种方法)
- nginx配置https转发规则(Nginx配置https原理及实现过程详解)
- nginx怎么配置静态文件(Nginx 过滤静态资源文件的访问日志的实现)
- linux系统查看nginx系统版本(Linux中Nginx的防盗链和优化的实现代码)
- 新手nginx反向代理问题(详解Nginx proxy_pass的一个/斜杠引发的血案)
- nginx 怎么搭建web服务器(Linux+Nginx+Php架设高性能WEB服务器)
- nginx 一个域名对应多个项目(nginx前后端同域名配置的方法实现)
- nginx宝塔配置修改(宝塔面板默认的404页面不生效怎么办Nginx?)
- php nginx 底层执行流程(nginx/apache/php隐藏http头部版本信息的实现方法)
- nginx配置详解(Nginx进程管理和重载原理详解)
- nginx优化分几种(Nginx优化服务之网页压缩的实现方法)
- 一道高中题-求杯子的高度(一道高中题-求杯子的高度)
- 网坛停摆三巨头亏损惨重,费德勒跌幅88 纳达少赚2400万(网坛停摆三巨头亏损惨重)
- Beyond 版本《无人深空》主线任务攻略 阿特拉斯之道(版本无人深空主线任务攻略)
- 全球科技界最有钱大佬TOP 15 你知道几位(全球科技界最有钱大佬TOP)
- 2主力后腰缺阵 泰山队奇兵有望获重用,赛季0出场,迎来中超首秀(泰山队奇兵有望获重用)
- 三分71 生死战爆发 篮网旧将丁威迪今天成奇兵,助队赢球(三分71生死战爆发)
热门推荐
- python3字符串格式化怎么操作(python3实现字符串操作的实例代码)
- phplaravel开发规范(Laravel解决nesting level错误和隐藏index.php的问题)
- docker容器运行环境(Docker 清理环境操作)
- 在网页中插入百度地图
- laravel 框架关键技术解析(在laravel框架中实现封装公共方法全局调用)
- python开启两个线程(Python开启线程,在函数中开线程的实例)
- html5 设置缓存(HTML5实现应用程序缓存Application Cache)
- docker中mysql连接命令(docker 如何修改mysql的root密码)
- phpredis怎么设置队列(php使用lua+redis实现限流,计数器模式,令牌桶模式)
- python中创建类的方法(Python中如何导入类示例详解)
排行榜
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9