Маршрут Laravel перенаправляется на 404 с помощью 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 _;

    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; выглядит некорректно. Что он должен делать?

Richard Smith 07.03.2019 19:54
Стоит ли изучать PHP в 2026-2027 годах?
Стоит ли изучать PHP в 2026-2027 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Оживление вашего приложения Laravel: Понимание режима обслуживания
Оживление вашего приложения Laravel: Понимание режима обслуживания
Здравствуйте, разработчики! В сегодняшней статье мы рассмотрим важный аспект управления приложениями, который часто упускается из виду в суете...
Коллекции в Laravel более простым способом
Коллекции в Laravel более простым способом
Привет, читатели, сегодня мы узнаем о коллекциях. В Laravel коллекции - это способ манипулировать массивами и играть с массивами данных. Благодаря...
Поиск нового уровня в Laravel с помощью MeiliSearch и Scout
Поиск нового уровня в Laravel с помощью MeiliSearch и Scout
Laravel Scout - это популярный пакет, который предоставляет простой и удобный способ добавить полнотекстовый поиск в ваше приложение Laravel. Он...
Освоение архитектуры микросервисов с Laravel: Лучшие практики, преимущества и советы для разработчиков
Освоение архитектуры микросервисов с Laravel: Лучшие практики, преимущества и советы для разработчиков
В последние годы архитектура микросервисов приобрела популярность как способ построения масштабируемых и гибких приложений. Laravel , популярный PHP...
Как построить CRUD-приложение в Laravel
Как построить CRUD-приложение в Laravel
Laravel - это популярный PHP-фреймворк, который позволяет быстро и легко создавать веб-приложения. Одной из наиболее распространенных задач в...
0
1
528
2

Ответы 2

Попробуйте использовать этот блок кода вместо блока кода вашего местоположения.

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 года. Если он работает и для вас, просто проголосуйте за исходный ответ.

Marc Sances 29.10.2020 22:39

Другие вопросы по теме