nginx判断访问的是不是index.html如果是且index.html存在直接返回

news2024/11/18 14:25:11

可以通过以下配置实现此功能:

复制server {
    listen 80;
    server_name example.com;
    root /var/www/example.com;

    index index.html;

    location / {
        try_files $uri $uri/ @index;
    }

    location @index {
        if (-f $document_root/index.html) {
            return 200;
        }
        rewrite ^ /index.html last;
    }
}

上面的配置中,try_files指令会先尝试访问与请求路径相同的文件,如果文件不存在则尝试访问对应的目录下的index.html文件。

如果try_files无法找到对应的文件,则会执行重写规则,将请求路径重写为index.html,然后返回200状态码。

注意,使用if指令会影响性能,因此应该尽量避免使用。在上面的配置中,我们使用if指令来判断index.html文件是否存在。如果存在,则直接返回200状态码,否则才执行重写规则。

  • 在nginx中,可以使用try_files指令来实现伪静态判断html是否存在,如果不存在则访问php。

    具体配置如下:

    复制location / {
        try_files $uri.html $uri $uri/ @php;
    }
    
    location @php {
        # 将请求转发给php-fpm处理
        fastcgi_pass unix:/var/run/php-fpm.sock;
        fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
        include fastcgi_params;
    }

    解释一下上面的配置:

    • try_files $uri.html $uri $uri/ @php;:先尝试访问与请求路径同名的html文件,若存在则直接返回;如果不存在,则尝试访问请求路径(即不带后缀的原始路径),若存在则直接返回;如果还是不存在,则尝试访问以请求路径为目录的index文件(如/test/会尝试访问/test/index.html/test/index.php),若存在则直接返回;最后,如果还是未找到对应文件,则将请求转发给@php对应的location处理。
    • location @php { ... }:当上面的try_files未找到对应文件时,请求会被转发到这个location处理,并将请求转发给php-fpm处理。

    通过上述配置,可以实现nginx伪静态判断html是否存在,如果不存在则访问php。

    点击复制后,将打开C知道体验页

    |

  • wordpress,伪静态先使用try_files 判断html是否存在,如果不存在则访问index.php

    点击复制后,将打开C知道体验页

  • 是的,这是一种常见的实现方式。在 Nginx 的配置中,可以使用 try_files 指令来判断请求的文件是否存在,如果不存在则将请求交给 index.php 处理。具体的配置如下:

    复制location / {
        try_files $uri $uri/ /index.php?$args;
    }

    其中,$uri 表示当前请求的 URI,$uri/ 表示当前请求的 URI 加上一个斜杠,/index.php?$args 表示将请求交给 index.php 处理,并将原始的查询参数传递给 index.php。

    这样的配置可以实现 WordPress 的伪静态功能,即将请求转换为类似于 /post/123 的 URL 形式,并通过 index.php 处理这些请求。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/569900.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Spring源码(一) — 序言

序言 Java程序员的日常开发一定都离不开Spring的框架,从Spring、SpringMVC、SpringBoot、SpringCloud… 而Spring框架就是Spring家族中最基础也是最重要的一个框架。 Spring 我们常说的Spring往往都绕不开IOC(控制反转)和AOP(切…

Zebec生态进展迅速,频被BitFlow、Matryx DAO等蹭热度碰瓷

进入到 2023 年以来, Zebec 生态的整体发展突飞猛进,除了流支付协议 Zebec Protocol 不断通过收购来扩大自身流支付业务、与万事达等合作推出 Zebec Card 等在支付业务上,实现进展外,其社区驱动的Layer3 模块化链 Nautilus Chain …

GP-NFC-Management of Multiple Secure Elements

GP_Mobile Task Force Requirements for NFC Mobile Management of Multiple Secure_Elements_v1.0.pdf 一、简介 在不久的将来,NFC 非接触式手机有望变得无处不在。 它们将用作支付卡、交通票、忠诚卡、访问控制徽章和许多其他非接触式服务卡。 一些试点已经在全…

CNN详细学习

前馈神经网络 常见激活函数 sigmoid函数 梯度消失与爆炸 通用逼近定理 根据通用近似定理,对于具有线性输出层和至少一个使用“挤压”性质的激活函数的隐藏层组成的前馈神经网络 只要其隐藏层神经元的数量足够,它可以以任意的精度来近似任何从一个定义…

java矢量切片实现

概述 可通过多种方式实现矢量切片的制作&#xff0c;前面讲到了基于postgis数据库、tippecanoe、Qgis等方式&#xff0c;本文讲述基于spring Boot框架下java的实现。 实现效果 实现代码 后端代码 引入依赖 <dependency><artifactId>giscat-vector-mvt</art…

Microsoft Office 2021安装

哈喽&#xff0c;大家好。今天一起学习的是office2021的安装&#xff0c;有兴趣的小伙伴也可以来一起试试手。 一、测试演示参数 演示操作系统&#xff1a;Windows 11 支持Win10安装&#xff0c;不支持Win7、XP系统 系统类型&#xff1a;64位 演示版本&#xff1a;cn_office_…

公有云弊端尽显,“云回迁”真的来了吗?

5到10年前&#xff0c;如果一家企业制定数字化转型战略&#xff0c;那么这项战略的核心大概率是将业务迁移上云。 现在&#xff0c;多数企业的业务已在云中“开花结果”&#xff0c;与以往不同的是&#xff0c;原先的一“朵”云变成了一“片”云。 没错&#xff0c;多云战略正…

Java集合底层原理总结

文章目录 一、集合分类二、遍历集合方式三、单列集合3.1 List3.1.1 ArrayList底层分析3.1.2 LinkedList底层分析 3.2 Set3.2.1 HashSet&#xff08;无序&#xff09;底层分析3.2.2 LinkedHashSet&#xff08;有序&#xff0c;存取一致&#xff09;3.2.3 TreeSet&#xff08;可排…

[LitCTF 2023]easy_shark

下载附件解压出现密码提示 使用010editor打开&#xff0c;发现frflags和deflags都被修改了&#xff0c;这就会造成压缩包伪加密 将它们都改回0&#xff0c;另存为再打开&#xff0c;不再出现密码提示 使用wirshark打开 过滤http并追踪&#xff0c;在最后一个包里找到了类似fla…

车载以太网 - SomeIP - 协议用例 - on-wire

目录 Specification of the SOME/IP on-wire format 1.1、验证Response报文中的源IP地址为Request报文中的目标IP地址

搭建stm32电机控制代码框架(二)——Stm32CubeMx配置定时器

搭建了基础的环境&#xff0c;配置了一个简单的工程后&#xff0c;CubeMx的基本操作就会了。然后基于这个操作往下推进&#xff0c;开始对关键模块定时器的攻略&#xff0c;这个部分需要先熟悉一下Stm32的定时器基本原理。 《STM32参考手册》中仅对定时器的介绍就已经占了100多…

C++的最后一道坎 | 百万年薪的程序员

| 导语 C 的起源可以追溯到 40 年前&#xff0c;但它仍然是当今使用最广泛的编程语言之一&#xff0c;C发明人Bjarne Stroustrup 一开始没想到 C 会获得如此大的成功&#xff0c;他说&#xff1a;“C 的成功显然令人惊讶。我认为它的成功取决于其最初的设计目标&#xff0c;就是…

用nginx实现一个直播服务—RTMP推流和HTTP-FLV拉流

目录 一、环境准备 二、安装编译nginx所需的安装包和下载nginx原代码包 三、nginx配置 四、启动nginx服务 五、测试推流和拉流服务 六、摄像头数据采集 七、查看统计 这篇文章主要记录用nginx实现直播服务&#xff0c;通过RTMP推流和通过HTTP-FLV或RTMP拉流&#xff0c;…

DJ5-4 链路层交换机

目录 一、链路层交换机 二、交换机&#xff1a;支持多节点同时传输 三、交换机&#xff1a;转发表或称交换表 四、交互机&#xff1a;自学习 1. 单个交换机自学习/转发的例子 2. 多个交换机自学习/转发的例子 五、交换机&#xff1a;数据帧的过滤/转发 六、交换机的交换…

css基础技巧

1. emmet语法 <!DOCTYPE html> <html lang"en"><head><meta charset"UTF-8"><meta name"viewport" content"widthdevice-width, initial-scale1.0"><title>Document</title><style>…

如何在CSDN获取更多的铁粉?

一、铁粉的定义 要想获取铁粉&#xff0c;首先我们得知道什么是铁粉&#xff0c;根据官方给出定义是下面这样的&#xff1a; 【铁粉】具体规则如下&#xff1a; 铁粉 90 天内有阅读&#xff0c;购买专栏或其他互动&#xff0c;并且原力等级 > 0 的粉丝。 也就是说你的原力…

数据结构——二叉树_(上)

学习二叉树之前我们首先要对树有一个认识&#xff0c;树是一种非线性结构&#xff0c;它是由n(n>0)个有限节点组成的一个具有层次关系的节点&#xff1b;而这个层次结构倒过来看就十分的像一棵树&#xff0c;所以起名树结构。 跟现实中的树一样&#xff0c;树结构也有一个根…

Altium Designer18基础

原理图 第5课 元件库介绍及电阻容模型的创建.mp4_哔哩哔哩_bilibili 原理图库&#xff08;schLib&#xff09; 1. 创建原理图库&#xff1a; panels -> SCHLIB&#xff1a;左侧弹出SCH Lib窗口 Add&#xff1a;新建原理图库 点击原理图库名称&#xff1a;进入原理图库设置…

【短视频矩阵系统源码搭建+二开源码定制部署】

短视频矩阵源码的框架有很多种&#xff0c;根据不同的业务需求和技术要求&#xff0c;可选择适合的框架。目前常见的短视频矩阵源码框架有&#xff1a;Flutter、React Native、Vue、Angular等前端框架&#xff1b;Spring Boot、Laravel等后端框架&#xff1b;FFmpeg、Pusher、W…

ChatGPT“保姆级教程”——手把手教你5分钟快速AI智能文字转爆款视频(剪映+百度AIGC平台)

目录 前言ChatGPT 剪映ChatGPT生成视频文档安装专业版剪映使用剪映一键出片保姆集教程 百度AIGC平台注册百度AIGC平台使用百度AIGC平台一键出片保姆集教程 总结其它资料下载 前言 在这个数字时代&#xff0c;视频已经成为了最流行的内容形式之一。而如何自动将文字转化为引人…