使用nginx将Laravel路由重定向到404
我在我的虚拟机上有一个laravel应用程序,我用nginx设置服务器,但是每次我调用路由时,它都不工作,并且重定向到404找不到 这是我的nginx配置:使用nginx将Laravel路由重定向到404,laravel,nginx,Laravel,Nginx,我在我的虚拟机上有一个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 _; locat
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是因为我想在我的虚拟机上运行多个应用程序,我尝试了一些解决方案,但仍然不起作用。尝试此代码块而不是位置代码块
location / {
# Redirect everything that isn't a real file to index.php
try_files $uri $uri/ /index.php?$query_string;
}
我希望它能帮上忙。这是我的配置,它能工作
location / {
# First attempt to serve request as file, then
# as directory, then fall back to displaying a 404.
try_files $uri $uri/ /index.php?$query_string;
}
语句try_files$uri=404/index.php=404;看起来不对。它应该做什么?这个答案没有从2019年的答案中添加任何内容。如果它对你也有效,只需对原始答案投上一票。