php - Nginx 默认/URI 上的 Laravel 不起作用 - 需要 "index.php"- Nginx 配置问题?

标签 php laravel ubuntu nginx webserver

我添加了一个位置 block 来从/todos/的子​​ URI(仅)提供 Laravel 应用程序

location /todos {
    try_files $uri $uri/ /todos/$query_string;
    index  index.php index.html index.htm;
    root /index.php;
    location ~ \.php$ {
        fastcgi_index index.php;
        fastcgi_read_timeout 300;
        fastcgi_pass   unix:/opt/bitnami/php/var/run/www.sock;
        fastcgi_split_path_info ^(.+\.php)(/.+)$;
        fastcgi_param SCRIPT_FILENAME /opt/bitnami/nginx/html/todos/public/index.php;
        fastcgi_param QUERY_STRING $query_string;
        include        fastcgi_params;
    }
}

但是转到/todos/URI 不起作用(提供 403 Forbidden),它需要我实际输入“index.php” - 所以 Laravel 只适用于/todos/index.php。

我究竟做错了什么?

更新:
工作配置:
location /todos {
    try_files $uri $uri/ /todos/index.php?$query_string;
    index  index.php index.html index.htm;
    root /opt/bitnami/nginx/html/todos/public/;
    location ~ \.php$ {
        fastcgi_index index.php;
        fastcgi_read_timeout 300;
        fastcgi_pass   unix:/opt/bitnami/php/var/run/www.sock;
        fastcgi_split_path_info ^(.+\.php)(/.+)$;
        fastcgi_param SCRIPT_FILENAME /opt/bitnami/nginx/html/todos/public/index.php;
        fastcgi_param QUERY_STRING $query_string;
        include        fastcgi_params;
    }
}

最佳答案

您的根需要是:

root $directory_of_your_index.php_file;

并在位置添加:
try_files $uri $uri/ /index.php?$query_string;

关于php - Nginx 默认/URI 上的 Laravel 不起作用 - 需要 "index.php"- Nginx 配置问题?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55201980/

相关文章:

javascript - 如何获取mysql中前两行值并将其与 session 用户变量的值进行比较?

php - Laravel 如何像使用数组一样使用 app 对象?

xml - 无法使用 wget 检索完整文件

ruby-on-rails - ubuntu上的rails服务器错误

linux - dh : unable to load addon autoreconf in Ubuntu 14. 04

php - 在谷歌地图上绘制方向

php - 如何在 sql 查询中插入 php 变量?

php - 没有 index.php 路由无法工作

mysql - 使用 Laravel 查询构建器根据以下查询在多列中搜索值?

javascript - 登录后重定向到应用程序页面不在同一服务器上