Woo79 2024-03-04 20:41 采纳率: 0%
浏览 7

nginx rewrite

img

有个疑问:图中这个画圈的正则表达式,它是基于什么匹配的啊?是基于我们输入的域名加后面的路径匹配的嘛?他这个rewrite写在了server块里面,所以那个正则表达式是基于我们输入的域名和后面的路径匹配嘛?感觉有点子绕

  • 写回答

3条回答 默认 最新

  • 关注

    Woo79 晚上好🌙🌙🌙
    本答案参考ChatGPT-3.5

    这个正则表达式是用于在Nginx中执行重写操作的,它是基于请求的URL路径进行匹配的。在这个例子中,该正则表达式匹配的是以/weihu.html结尾的URL路径。

    根据你提供的配置文件代码,我可以看到这个正则表达式被写在了server块中。根据Nginx的工作原理,当有请求到达时,Nginx会首先匹配server块中的server_name指令来确定需要处理该请求的server块。然后,Nginx会按照配置文件中的顺序依次匹配location指令来确定需要执行的指令。

    在这个例子中,如果请求的URL路径匹配到了/weihu.html,那么Nginx会执行rewrite指令将请求重定向到/weihu.html页面。

    解决方案:

    1. 开启Nginx服务器并配置www.kgc.com为服务器名称。
    2. 设置是否合法的1P标记(例如Srewrite)为true。
    3. 添加if条件语句来判断请求的IP地址是否是合法的IP。
    4. 如果IP地址不是合法的,将Srewrite标记设为false。
    5. 当Srewrite标记为true时,执行重写操作将请求重定向到/weihu.html页面。
    6. 在location指令中指定/weihu.html的访问路径。

    修改后的配置文件如下:

    1 vim /usr/local/nginx/conf/nginx.conf
    2 server
    3 listen 80;
    4 server_name www.kgc.com;
    5 charset utf-8;
    6 access_log /var/log/nginx/www.kgc.com-access.log;
    
    # 设置是否合法的1P标记
    set $Srewrite true;
    
    # 判断是否为合法IP
    if ($remote_addr = 192.168.10.19) {
        set $Srewrite false;
    }
    
    # 除了合法IP,其它都是非法IP,进行重写跳转维护页面
    if ($Srewrite = true) {
        rewrite ^/weihu.html$ /weihu.html;
    }
    
    location /weihu.html {
        root /var/www/html;
    }
    
    location / {
        root html;
        index index.html index.htm;
    }
    

    请注意,这只是一个示例配置文件,你可能需要根据实际需求进行适当的修改。

    评论

报告相同问题?

问题事件

  • 创建了问题 3月4日

悬赏问题

  • ¥15 c++ gmssl sm2验签demo
  • ¥15 关于模的完全剩余系(关键词-数学方法)
  • ¥15 有没有人懂这个博图程序怎么写,还要跟SFB连接,真的不会,求帮助
  • ¥30 模拟电路 logisim
  • ¥15 PVE8.2.7无法成功使用a5000的vGPU,什么原因
  • ¥15 is not in the mmseg::model registry。报错,模型注册表找不到自定义模块。
  • ¥15 安装quartus II18.1时弹出此error,怎么解决?
  • ¥15 keil官网下载psn序列号在哪
  • ¥15 想用adb命令做一个通话软件,播放录音
  • ¥30 Pytorch深度学习服务器跑不通问题解决?