nginx 位置块禁用 php 文件的呈现

nginx location block disables rendering of php files

我的 website.conf 中有这个 location 块:

 location ~ ^/([^/?&:'"]+)$ {
        try_files $uri @root_path;
    }

这部分文件阻碍了 php 个文件的执行,它始终将它们作为下载提供。

如果有人能详细说明,我将不胜感激。

更多背景信息:我正在试用 jitsi-meet,我想向网站添加一些基于 php 的功能。

正则表达式 ^/([^/?&:'"]+)$ 匹配任何以 / 开头并包含除 /?&、[=15 之外的任何字符的任何内容=]、'"

第一个字符很重要,因为它意味着它只会匹配包含单个路径元素的 URI(例如 /foo/index.php),但不会匹配包含另一个 [=11= 的 URI ](例如 /foo//foo/bar/foo/index.php)。

其他字符可能是错误的,因为 ?& 不太可能被 location 语句遇到,因为 Nginx 使用 normalised URI查询字符串已删除。


您不需要从这个正则表达式中排除 .php

.php结尾的URI通常由另一个正则表达式位置块处理(例如location ~ \.php$)。

正则表达式位置块按顺序求值,直到找到匹配项,因此您需要确保 location ~ \.php$ 块位于正则表达式位置 上方 阻止你的问题。