当前位置: 首页 > article >正文

nginx-rewrite(多种实现方法)

目录

一、 前提配置

二、 基于域名跳转

三、 基于客户端IP访问

四、 基于旧域名跳转到新域名后面加目录

五、 基于参数匹配的跳转

六、 基于目录下多有php结尾的文件跳转


一、 前提配置

1. 客户端添加hosts记录(我使用的是win10)

C:\Windows\System32\drivers\etc\hosts

2. 关闭防火墙

systemctl stop firewalld
setenforce 0

3. 安装组件

yum -y install epel-release

4. 安装nginx(使用网络安装)

yum install -y nginx

5. 修改站点文件

vim /etc/nginx/conf.d/default.conf

如果没有default.conf文件,就自己创建一个

server {
    listen       80;
    server_name  localhost;


    #charset koi8-r;
    #access_log  /var/log/nginx/host.access.log  main;

    location /mystatus {
        stub_status;
    }

    location / {
        root   /usr/share/nginx/html;
        index  index.html index.htm;
    }


    #error_page  404              /404.html;


    # redirect server error pages to the static page /50x.html
    #
    error_page   500 502 503 504  404 /50x.html;
    location = /50x.html {
        root   /usr/share/nginx/html;
    }


    # proxy the PHP scripts to Apache listening on 127.0.0.1:80
    #
    #location ~ \.php$ {
    #    proxy_pass   http://127.0.0.1;
    #}


    # pass the PHP scripts to FastCGI server listening on 127.0.0.1:9000
    #
    #location ~ \.php$ {
    #    root           html;
    #    fastcgi_pass   127.0.0.1:9000;
    #    fastcgi_index  index.php;
    #    fastcgi_param  SCRIPT_FILENAME  /scripts$fastcgi_script_name;
    #    include        fastcgi_params;
    #}


    # deny access to .htaccess files, if Apache's document root
    # concurs with nginx's one
    #
    #location ~ /\.ht {
    #    deny  all;
    #}
}

6. 编写网页

echo "<h1>www.test.com</h1>" > /usr/share/nginx/html/index.html

7. hosts记录

192.168.180.110 www.test.com
192.168.180.110 www.test1.com

8. 开启nginx

nginx

二、 基于域名跳转

1. 修改站点文件,在location /下加入配置

vim /etc/nginx/conf.d/default.conf
        if ($host = 'www.test.com') {
                rewrite ^/(.*)$ http://www.test1.com/$1 permanent;
        }

2. 重启nginx

3. 客户端浏览器访问,跳转到www.test1.com上

www.test.com


三、 基于客户端IP访问

1. 修改站点文件,把原来的删掉

vim /etc/nginx/conf.d/default.conf
    set $rewrite true;
    if ($remote_addr = "192.168.180.110") {
        set $rewrite false;
}
    if ($rewrite = true ) {
        rewrite (.+) /maintenance.html;
}

2. 编写网页

echo "Website is Maintaining,Please visit later." > /usr/share/nginx/html/maintenance.html

3. 重启nginx

4. 客户端浏览器访问测试,每次访问都需要把浏览器缓存清除 

只有IP为192.168.180.110才能访问页面,其他IP访问的是服务页面


四、 基于旧域名跳转到新域名后面加目录

1. 修改站点文件,将原先的配置删除

vim /etc/nginx/conf.d/default.conf
rewrite (.+) http://www.test.com/qt$1 permanent;

2. 重启nginx

3. 添加hosts记录

vim /etc/hosts
192.168.180.110 qt.test.com

4. 客户端浏览器测试,每次访问都需要把浏览器缓存清除

qt.test.com


五、 基于参数匹配的跳转

1. 修改站点文件,将原来的配置删除

vim /etc/nginx/conf.d/default.conf
    if ($request_uri ~ ^/100-(100|200)-(\d+).html) {
        rewrite (.*) http://www.test.com permanent;
}

2. 客户端浏览器测试,每次访问都需要把浏览器缓存清除

http://www.test.com/100-100-100.html(访问这个),跳转到www.test.com页面


六、 基于目录下多有php结尾的文件跳转

1. 修改站点文件,删除之前的配置

vim /etc/nginx/conf.d/default.conf
  rewrite (.+) http://www.test.com permanent;

2. 客户端浏览器访问测试,每次访问都需要把浏览器缓存清除

http://www.test.com/upload/1.php(访问这个),跳转www.test.com网页


http://www.kler.cn/a/452877.html

相关文章:

  • Glossary 词汇表中英文对照
  • ubuntu22.04上安装win10虚拟机,并采用noVNC+frp,让远程通过web访问桌面
  • Day7补代码随想录 454.四数相加II 383赎金信 15.三数之和 18.四数之和
  • 【C++】设计模式
  • 反射探针.
  • es 3期 第18节-分页查询使用避坑的一些事
  • 从一次线上故障聊聊接口自动化测试
  • QT创建一个模板槽和信号刷新UI
  • 《计算机网络(第7版)-谢希仁》期末考试复习题和答案(总结整理)
  • python file seek tell
  • 【2025最新计算机毕业设计】新型吃住玩一体化旅游管理系统【提供源码+答辩PPT+文档+项目部署】
  • 金仓数据库安装-Kingbase v9-centos
  • STM32串口无法正常中断
  • Spring Boot 中 WebClient 的实践详解
  • Go C编程 第6课 无人机 --- 计算旋转角
  • More Effective C++ 条款 1:仔细区别 pointer 和 reference
  • Leetcode经典题17--两数之和
  • 记我的Springboot2.6.4从集成swagger到springdoc的坎坷路~
  • Java 中的ArrayList常用方法总结
  • mysql mmm和mha对比
  • 记录学习《手动学习深度学习》这本书的笔记(六)
  • MySQL数据库——数据类型,索引,事务,优化
  • vue-计算两个日期之前的天数小方法
  • iptables一些笔记,始于安装ssr过程中防火墙问题
  • VLM--CLIP作分类任务的损失函数
  • 一文了解Oracle数据库如何连接(2)