У меня есть приложение 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, потому что хочу запустить несколько приложений на своей виртуальной машине, я пробовал пару решений, но они все еще не работают.






Попробуйте использовать этот блок кода вместо блока кода вашего местоположения.
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;
}
Этот ответ ничего не добавляет к ответу от 2019 года. Если он работает и для вас, просто проголосуйте за исходный ответ.
Утверждение
try_files $uri=404 /index.php=404;выглядит некорректно. Что он должен делать?