使用nginx在子目录中时不执行PHP

时间:2016-05-20 09:47:00

标签: php nginx

继续example.comexample.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;
    }
}

我知道有很多类似的线程,但我读过的都没有。

1 个答案:

答案 0 :(得分:0)

第一个服务器声明捕获请求,因为在此服务器声明中没有PHP位置块,Nginx只输出该文件。您需要将PHP位置块添加到第一个服务器声明。