继续example.com
,example.com/foo/
或example.com/foo/bar/
时,PHP运行良好。然后我尝试修改Nginx conf以使foo.example.com
指向example.com/foo/
(已配置DNS)。它有效,但现在当我访问foo.example.com/bar/
时,我可以下载foo/bar/index.php
而不是执行它。
这是Nginx配置:
server {
listen 80;
server_name *.example.com;
root /var/www/html/;
location / {
index index.html;
}
}
server {
listen 80;
server_name foo.example.com;
root /var/www/html/foo/;
location / {
index index.php;
try_files $uri $uri/ /index.php?$args;
}
location ~ \.php$ {
fastcgi_pass web_fpm:9000;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
include fastcgi_params;
}
}
我知道有很多类似的线程,但我读过的都没有。
答案 0 :(得分:0)
第一个服务器声明捕获请求,因为在此服务器声明中没有PHP位置块,Nginx只输出该文件。您需要将PHP位置块添加到第一个服务器声明。