0

我正在 AWS Linux 2 上设置 Nginx + PHP Web 服务器。它是安装了 nginx 和 PHP7.4 的全新安装。下面是 nginx 中的虚拟主机配置文件。

我需要将所有流量重定向到index.php,因为它是一个单页应用程序。

当我访问www.xxx.com/index.php时,PHP 页面呈现良好(因此 PHP 肯定正在运行)。

当我去www.xxx.com/login/时,浏览器提示下载 index.php文件而不是执行它。

有人可以帮忙吗?(我试图清除我的浏览器缓存)。

/etc/nginx/conf.d/myapp.conf

server {
    listen 80 default_server;
    listen [::]:80 default_server;

    root /var/www/vhosts/app.userback.io/frontend/;
    index index.php index.html index.htm;

    server_name www.myapp.com;

    location / {
        try_files $uri $uri/ /index.php =404;
    }

    location ~ \.php$ {
        try_files $uri =404;

        fastcgi_split_path_info ^(.+\.(?:php|phar))(/.*)$;
        fastcgi_intercept_errors on;
        fastcgi_index  index.php;
        include        fastcgi_params;
        fastcgi_param  SCRIPT_FILENAME  $document_root$fastcgi_script_name;
        fastcgi_param  PATH_INFO $fastcgi_path_info;
        fastcgi_pass   php-fpm;
    }
}
4

2 回答 2

0

你能试一下吗:

location ~ \.php$ {
    try_files $uri /404.html;
    fastcgi_pass unix:/var/run/php-fpm/php-fpm.sock;// change it if not valid
    fastcgi_index index.php;
    fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
    include fastcgi_params;
} 
于 2020-11-16T03:37:31.777 回答
0

我在这里找到了答案:NGINX try_files does not pass to PHP

事实证明,这是位置的顺序加上删除 404 以使重定向成为内部。

于 2020-11-16T07:14:39.457 回答