我有一个简单的 nginx 设置并且一切运行正常。
我已将索引设置如下:
index index.html index.php
server_name 设置为 local.nginx。如果我请求http://本地.nginx它工作正常,但如果我请求http://local.nginx/index.php- 原始文件被发送到浏览器。
怎么了?
请参阅下面的配置:
server {
listen 80;
server_name local.nginx;
root /var/www/local.nginx/;
index index.html index.php;
location ~ \.php$ {
fastcgi_pass 127.0.0.1:9000;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
include fastcgi_params;
}
}
编辑
我发现这只发生在 Chrome 上。清除浏览器缓存后问题就消失了。有人能解释一下这里发生了什么吗?
答案1
如果在测试时您的 PHP 配置不起作用,Chrome 将缓存原始 .php 文件并继续提供该文件。
请谨慎使用 PHP 配置,尤其是当您要接受上传或将任何输入保存到文档根目录中的文件时,因为可以将路径信息添加到 URL 并让 PHP 解释器执行它,例如