正如标题所说,我正在寻找一种配置,使PHP文件无需从请求的URL扩展即可访问,并且不允许直接访问PHP。但也有用于PHP脚本和资源的单独文件夹。在本例中,www根目录中的文件夹按各自的顺序命名为“php”和“public”。我正在运行nginx/1.10。3在Ubuntu上。
我已经尝试了很多,几乎所有我能找到的DuckDuckGo上的物品。问题似乎出在“if”块上,因为即使文件存在,它也不会重写uri。我尝试将此重写包含在名为“@phpext”的单独位置,并将其包含在try_文件中,但没有成功。我已经测试了PHPCGI本身,并且工作良好。
server {
listen 80 default_server;
...
server_name potatoi-t.com www.potatoi-t.com;
root /servers/www/;
index index;
location / {
if (-f /php$uri.php) {
rewrite ^(.*)$ /php$1.php last;
}
try_files /public$uri /public$uri/index =404;
}
location ~ \.php$ {
fastcgi_pass unix:/run/php/php7.1-fpm.sock;
include snippets/fastcgi-php.conf;
internal;
}
}
我希望以下url解析为以下文件:
http://www.potatoi-t.com/(通过php-cgi) /servers/www/php/index.php
http://www.potatoi-t.com/images/existingImage.php
/servers/www/public/images/existingImage。php
http://www.potatoi-t.com/index.php
(返回404)
http://www.potatoi-t.com/nonExistantFile
(返回404)
非常感谢您的建议!我是自学成才的,对nginx配置还不熟悉,所以我非常感谢你的解释,如果不是nu的感觉的话。谢谢你!
提供的解决方案是可行的。-f
运算符需要一个路径,而不是相对于根目录的URI。将URI与$document\u root
变量相结合,可以生成文件系统中可能有效位置的路径。
-f运算符需要路径名而不是URI。尝试:if(-f$document_root/php$uri.php){...}
主要内容:1. 设置虚拟服务器,2. 配置位置,3. 使用变量,4. 返回特定状态码,重写URI请求,5. 重写HTTP响应本文介绍如何将NGINX配置作为Web服务器,并包括以下部分: 设置虚拟服务器 配置位置 使用变量 返回特定状态码 重写请求中的URI 重写HTTP响应 处理错误 在高层次上,将NGINX配置作为Web服务器有一些问题需要了解,定义它处理哪些URL以及如何处理这些URL上的资源的HTTP请求。 在较低层次上,配置定义了一组控制对特定域或IP地址的请求的处理的虚拟服务器。 用
本文向大家介绍Nginx服务器限制访问速度的配置方法,包括了Nginx服务器限制访问速度的配置方法的使用技巧和注意事项,需要的朋友参考一下 用Nginx建站的同学,常会有限速需求。开发测试阶段在本地限速模拟公网的环境,方便调试。投入运营会有限制附件下限速度,限制每个用户的访问速度,限制每个IP的链接速度等需求。 刚遇到一个Bug在网络很卡的情况下才能重现,本地调试访问本机速度太快,配置Nginx成
我想在使用Kotlin扩展函数时访问Java的私有字段。 假设我有一个Java类。ABC只有一个私有字段。我想用静态编程语言编写一个扩展函数,无论出于什么原因使用该字段。 Kotlin的功能是: 我得到的错误是: 无法访问“mPrivateField”:它在“ABC”中是专用的 有没有办法绕过这个限制?
本文向大家介绍Nginx服务器上安装并配置PHPMyAdmin的教程,包括了Nginx服务器上安装并配置PHPMyAdmin的教程的使用技巧和注意事项,需要的朋友参考一下 一、 准备工作: 1. 如果mysql的root账号为空,需要设置root密码 CentOS下默认安装的mysql服务器,里面的root账号默认密码为空,首先为root设置一个密码 #mysqladmin -u root pas
本文向大家介绍win7下FTP服务器配置访问教程,包括了win7下FTP服务器配置访问教程的使用技巧和注意事项,需要的朋友参考一下 也可以参考百度的教程win7下FTP服务器安装 一、FTP服务器功能打开 1、打开【控制面板】→【程序】→【打开或关闭Windows功能】→出现以下界面: 2、一定要将树形目录【Internet信息腐乳】展开,然后将【FTP服务】目录展开(注意的是所有其他配置在这里都