【发布时间】:2020-10-29 20:45:11
【问题描述】:
我的虚拟机上有一个 laravel 应用程序,我用 nginx 设置服务器,但每次我调用路由时,它都不起作用并重定向到 404 未找到
这是我的 nginx 配置:
server {
listen 80 default_server;
listen [::]:80 default_server;
index index.html index.htm index.nginx-debian.html index.php;
server_name _;
location / {
#deny all;
try_files $uri $uri/ /index.php$is_args$args;
}
location /crm-api {
root /var/www/crm-api/public; #
rewrite ^/crm-api/(.*)$ /$1 break; #
# First attempt to serve request as file, then
# as directory, then fall back to displaying a 404.
try_files $uri $uri/ /index.php$is_args$args;
}
location ~ /\. {
deny all;
}
location ~ \.php$ {
set $newurl $request_uri; #
if ($newurl ~ ^/crm-api(.*)$) { #
set $newurl $1; #
root /var/www/crm-api/public; #
} #
try_files $uri=404 /index.php=404;
#fastcgi_split_path_info ^(.+\.php)(/.+)$;
fastcgi_param REQUEST_URI $newurl; #
fastcgi_intercept_errors on;
fastcgi_pass unix:/run/php/php7.3-fpm.sock;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
include fastcgi_params;
}
}
我创建了 /crm-api 因为我想在我的虚拟机上运行多个应用程序,我尝试了几个解决方案,但仍然无法正常工作。
【问题讨论】:
-
声明
try_files $uri=404 /index.php=404;看起来不正确。它应该做什么?