当前位置: 首页 > 知识库问答 >
问题:

如何重写。Nginx上的php扩展是否没有结尾?

厍和颂
2023-03-14

我试图成为我的php文件运行没有。php扩展在浏览器中结束,并将所有内容重定向到非。php

我已经设置,这两个可用。有. php和没有. php在浏览器上。但现在只需要重写。

你能帮我解决他们的问题吗?

location / {
        try_files $uri $uri $uri/ @extensionless-php;
    }

    location @extensionless-php {
        rewrite ^(.*)$ $1.php last;
    }

顺致敬意,

共有1个答案

丁承德
2023-03-14

您大概有一个位置~\. php块来处理以. php结尾的URI。您应该在该块中包含一个try_files$uri=404;语句,以避免将不受控制的请求传递给PHP。

您还可以向该块添加内部指令,这将阻止外部访问。phpURI,因此只有您的无扩展php URI才能工作。有关详细信息,请参阅本文档。

例如:

location ~ \.php$ (
    internal;
    try_files $uri =404;
    ...
}

如果您想重定向浏览器使用无扩展PHP时,不小心出现了以. php结尾的URI,您需要查看原始请求URI,否则您将面临重定向循环的风险。

例如:

if ($request_uri ~ \.php($|\?))
{
    rewrite ^(.*)\.php$ $1 permanent;
}

如果使用,请参阅此警告。

 类似资料:
  • 我知道有很多关于这个话题的帖子,但似乎没有一条适合我。我不确定这是否是因为我必须对两个服务器块都这样做,或者我做错了什么。请帮帮我。 下面是我在Amazon远程服务器上的nginx配置,第一个块表示后端,第二个块表示前端:

  • 我在nginxweb服务器上,我想删除来自url的扩展。 我目前有以下会议: 如果试图遵循一些类似的案例说明,但似乎没有任何工作与我的conf。 问题是这段代码 在两种情况下运行良好: 客户要求https://mywebsite.com/page.php:好的 客户要求https://mywebsite.com/page:好的 不重写url! 如果客户端试图访问具有文件扩展名的页面,我需要告诉NG

  • 我有一个nginx服务器正在运行,希望删除。我的文件中的php扩展名。我已经尝试了一些方法,但我唯一能做到的就是打破fastcgi过程,下载php文件。服务器在以下配置下运行正常: 谢谢你的努力和时间。

  • 问题内容: SASS具有一个称为的功能,该功能允许选择器继承另一个选择器的属性,但不复制属性(如mixins)。 LESS是否也具有此功能? 问题答案: 是的,Less.js推出的V1.4.0。 LESS没有实现SASS和Stylus使用的at- rule()语法,而是实现了伪类语法,这为LESS的实现提供了灵活性,使其可以直接应用于选择器本身或在语句内部。因此,这两个都将起作用: 要么 此外,您

  • 问题内容: 我想更改类的方法的执行方式,而不覆盖该方法,而仅覆盖(或理想地扩展)内部类。假设我无法更改需要执行此操作的事实(我正在修改现有的开放源代码库,因此拔出类或其他方法会遇到麻烦)。 我的目标是通过仅更改Thing,使B的toString()返回“ 30”,当前在该位置将返回“ 20”。理想的情况是仅更改方法value2(从而使任何其他方法保持不变),但是我不知道这是否可行。 谢谢 问题答案

  • 我有Python 3.7.5和Python 3.8安装在同一个windows 10机器上。它们都是从python.org/downloads.安装的。当我运行pip安装覆盖(使用最新版本的pip)时,它会在3.7.5下安装带有c扩展的覆盖,在3.8.2下安装不带c扩展的覆盖。 我怎么能强制覆盖安装与c扩展,因为性能是可怕的没有他们? 看起来是3.7。5下载:https://files.python