我添加了一个位置 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/