php - Laravel 项目的 Nginx 设置,该项目的路由以 ".php"结尾

标签 php nginx laravel-5

我正在尝试使用 Nginx 设置我的 Laravel 项目。我的 /etc/nginx/conf.d/default.conf 是:

server {
    listen 80;
    index index.php index.html;
    root /var/www/public;
    location / {
        try_files $uri /index.php?$args;
    }
    location ~ \.php$ {
        fastcgi_split_path_info ^(.+\.php)(/.+)$;
        fastcgi_pass app:9000;
        fastcgi_index index.php;
        include fastcgi_params;
        fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
        fastcgi_param PATH_INFO $fastcgi_path_info;
    }
}

我对以“.php”结尾的路由有疑问,例如

Route::get('modules.php', 'ModuleController@index');

服务器尝试打开不存在的文件modules.php,而不是转到index.php并查找路由。 我知道,nginx 设置中有这个问题,但我没有这方面的经验,所以我自己无法修复它。

最佳答案

浏览此页https://www.digitalocean.com/community/tutorials/how-to-install-laravel-with-an-nginx-web-server-on-ubuntu-14-04

在这里您可以找到合适的配置和说明。 例如:

server {
    listen 80 default_server;
    listen [::]:80 default_server ipv6only=on;

    root /var/www/laravel/public;
    index index.php index.html index.htm;

    server_name server_domain_or_IP;

    location / {
        try_files $uri $uri/ /index.php?$query_string;
    }

    location ~ \.php$ {
        try_files $uri /index.php =404;
        fastcgi_split_path_info ^(.+\.php)(/.+)$;
        fastcgi_pass app:9000;
        fastcgi_index index.php;
        fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
        include fastcgi_params;
    }
}

关于php - Laravel 项目的 Nginx 设置,该项目的路由以 ".php"结尾,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54131616/

相关文章:

python - 使用 Flask 代理到另一个 Web 服务

php - 我可以在 Laravel 5.2 中创建一个继承自 User 的新类吗?

php - 如果 use_controller 设置为 true,则 Assetic 不起作用

php - mysql 中非常奇怪的错误。与搜索匹配是有效的,但对它来说是无效的

javascript - 从 codeigniter Controller 获取输入值并在 knockout.js 中初始化

php - Laravel 重定向到路由

laravel-5 - laravel 5.8 - 创建和更新用户的个人资料

php - 什么是 PDO 以及我为什么要使用它?

javascript - Rails JavaScript View 在生产环境中不起作用

nginx - 去websocket,nginx代理这个对吗?