Laravel не работает роутинг nginx

Маршруты что Laravel не нашли после того, как Nginx и установить

После того, как я изменил ICG на nginx, все маршруты, кроме индексной страницы, не работают.

моя конфигурация nginx

и еще я пытался измениться

В основном вопросы в google я читал, но мне ничего не помогает.

Ответы — Маршруты что Laravel не нашли после того, как Nginx и установить / Laravel routes not found after nginx install

У меня была та же проблема, но обновление конфигурации по умолчанию заставило ее работать.

Дайте мне знать, сработало ли это для вас или нет.
sudo service nginx restart после изменения конфигурации.

Это правильная базовая конфигурация для Laravel и Nginx:

По состоянию на ноябрь 2018 года, когда PHP 7.2 вышел, это будет:

У меня была такая же проблема после обновления нескольких строк nginx работает нормально..

Это для windows ( измените корень в соответствии с вашей файловой системой )

1.корневой HTML/фреймворк Laravel; обновление #здесь — «добавить проект» имя папки после

2.try_files $URI-код и $URI/ /индекс.php$is_args$args; #Update Here-добавьте это для ошибки 404 not found

Когда я отправил параметры по get, я их не распознал, мне просто нужно активировать следующее: try_files $URI-код и $URI/ /индекс.php$is_args$args;

Я также получал ту же ошибку маршрутов не работающих на Nginx на моем Ubuntu 16.04

Чтобы решить эту проблему, я попробовал следующий код, и он просто отлично работает для меня.

Откройте файл project conf с помощью следующей команды

Затем выполните следующие изменения в этом файле

Важно изменить try_files в блоке location.

Я обнаружил, что это решило мою проблему с маршрутизацией Laravel. Я вложил местоположение

Источник

All Laravel routes «not found» on nginx

Hello, when I try to access my test app, just the index route works:
malte.italoborg.es

If I try to access another route, like:
malte.italoborg.es/admin

I got 404 error.

My nginx app file:

Join 1M+ other developers and:

  • Get help and share knowledge in Q&A
  • Subscribe to topics of interest
  • Get courses & tools that help you grow as a developer or small business owner

Join Now

Thanks, worked for me

These answers are provided by our Community. If you find them useful, show some love by clicking the heart. If you run into issues leave a comment, or add your own answer to help others.

This question was answered by @ggeduvn:

Thanks a lot, this worked for me

i need to open laravel frontend website from backend dashboard any guidance

question
Why are snapshots so slow

Why are snapshots so slow? It took 35 minutes to make a snapshot. and then to deploy a new droplet based on that snapshot takes a long time it’s been saying 30 seconds left for ages now.

Читайте также:  Как настроить мафон swat
question
my site i down please see http://www.cheri3a.com/

You have reached a domain that was pending verification per ICANN rules but has since been verified. It may take 24 to 48 hours for the website to come back online. https://ibb.co/e90sok please any solution i clean evrey think cache but when i.

question
Can you clone your instance

Can you create a new instance from an existing one by cloning it at digitalocean?

question
Why is my droplet stuck at «creating»? it has been hours now 🙁

Droplet is simply stuck at creating, I even opened a ticket (1252401) but the support is too lazy to even reply. What is this issue?

Источник

Laravel routes not found after nginx install

After I changed ICG to nginx all routes except index page does not work.

my nginx config

also I tried to change

Mostly questions in google i have read, but nothing helps me.

6 Answers 6

This is the correct basic config for Laravel and Nginx:

EDIT: Instead of:

As of November 2018, as PHP 7.2 is out, it would be:

When I sent parameters by get I did not recognize them, I just have to activate the following: try_files $uri $uri/ /index.php$is_args$args;

I had same problem after updating few lines nginx working fine..

It’s for windows ( change root acording your file system )

1.root html/laravel; #Update Here — add project folder name after html

2.try_files $uri $uri/ /index.php$is_args$args; #Update Here — Add this for 404 not found error

I had the same issue, but updating the default configuration made it work.

Let me know if this worked for you or not.
sudo service nginx restart after changing the configuration.

I was also getting the same error of Routes not working on Nginx on my Ubuntu 16.04

To solve Routes problem, i tried the following code and its just working fine for me.

Open project conf file using following command

Then do the following changes in this file

Important thing is to change the try_files in location block.

Источник

Маршруты Laravel не работают?

Я только начал изучать структуру Laravel и у меня проблема с маршрутизацией.

единственный маршрут, который работает, — это домашний маршрут по умолчанию, прикрепленный к Laravel из коробки.

Я использую WAMP в Windows, и он использует PHP 5.4.3 и Apache 2.2.22, и у меня также включен mod_rewrite, и я удалил индекс.php ‘ из приложения.php файле конфигурации оставить пустую строку.

Я создал новый контроллер пользователей:

Я создал файл представления в application/views/ user / called .в PHP С некоторым базовым html-кодом и в маршрутах.php я добавил следующее:

Читайте также:  Не работает тачскрин гольф 7

первый маршрут отлично работает при посещении корня ( http://localhost/mysite/public ) в моем браузере, но когда я пытаюсь перейти ко второму маршруту с http://localhost/mysite/public/user Я получаю ошибку 404 не найдена. Почему это происходит?

15 ответов

вы пытались добавить это в файл маршрутов вместо Route::get(‘user’, «user@index») ?

кусок текста перед @ , user в этом случае будет направлять страницу на пользовательский контроллер и кусок текста после @ , index , направить скрипт user функции public function get_index() .

я вижу, вы используете $restful в этом случае вы можете установить свой Route to Route::any(‘user’, ‘user@index’) . Это будет обрабатывать оба POST и GET , вместо того, чтобы писать их обоих отдельно.

на моей установке лампы Ubuntu я решил эту проблему со следующими 2 изменениями.

  1. включить mod_rewrite на сервере apache: sudo a2enmod rewrite .
  2. редактировать / etc/apache2 / apache2.conf, изменение директивы «AllowOverride» для каталога/var / www (который является моим основным корнем документа): AllowOverride All

затем перезапустите сервер Apache: service apache2 restart

использование WAMP нажмите на значок wamp — >apache — > модули apache — >прокрутите и проверьте rewrite_module Перезапуск С loadmodule rewrite_module

Примечание, серверное приложение автоматически перезапускается для вас, как только вы включите «rewrite_module»

вы пытались проверить, если

работает? Если это так, убедитесь, что все папки вашего пути не имеют прописных букв. У меня была такая же ситуация, и преобразование букв в нижний регистр помогло.

я получал ту же проблему, используя EasyPHP. Обнаружил, что мне нужно было указать AllowOverride All в своем блок httpd.conf . Без этого Apache иногда игнорирует ваш .htaccess .

мой закончил выглядеть так.

вы можете попытаться переместить root/public/.htaccess до root/.htaccess и он должен работать

маршруты

используйте их для определения конкретных маршрутов, которые не управляются контроллерами.

контроллеры

используйте их, когда вы хотите использовать традиционную архитектуру MVC

решение проблемы

вы не регистрируете контроллеры как маршруты, если вы не хотите конкретный «именованный» маршрут для действия контроллера.

вместо того, чтобы создавать маршрут для действий контроллеров, просто зарегистрируйте свой контроллер:

теперь ваш контроллер зарегистрирован, вы можете перейти к http://localhost/mysite/public/user и свой get_index будет работать.

вы также можете зарегистрировать все контроллеры за один раз:

хорошо, так что после удара головой по этой проблеме чуть больше дня. Я встал и сделал то, что должен был сделать вчера, и отладил то, что происходило!

что Laravel пытается сделать здесь, это вставить файл index.php прямо перед путем, заданным в качестве маршрута. Так, например, если вы указали Route::get(‘/account/create’, . и выполните свое приложение из say localhost/laravel/authenticate/public/account/create в вашем браузере, то laravel хочет выполнить localhost/authenticate/public/index.php/account/create , но для этого. Apache должен видеть, что запросы через /wamp/www/laravel/laravel/authentication/public (ваш путь может несколько отличаться, в зависимости от того, где ваше приложение laravel фактически установлено, но трейлинг public где подстановка должна иметь место) должен иметь ‘RewriteRule’ прикладная.

к счастью, laravel поставляет правильное правило перезаписи в удобном .htaccess файл прямо в вашем приложении public папка. Проблема в том, что код в этом.файл htaccess не будет работать с тем, как WAMP настроен из коробки. Причиной этого, по-видимому, является проблема, предложенная muvera в верхней части этого потока — код rewrite_module должен быть загружен Apache перед RewriteRule материал будет работать. Черт возьми, это имеет смысл.

Читайте также:  Как настроить скроллинг мыши

часть, которая не имеет смысла: просто stopping и restarting Apache services не будет подбирать изменения, необходимые для WAMP, чтобы сделать правильную вещь с вашим Перезаписчиком — я знаю, я пробовал это много раз!

что работает: внесите изменения, предложенные muvera (см. Верхнюю часть потока) для загрузки правильные модули. Затем сбросьте весь сеанс Windows, таким образом, сбрасывая Apache из памяти в целом. Перезагрузите (перезагрузите) WAMP и вуаля! исправление работает,применяется правильный переписчик, яда, яда; я живу долго и счастливо.

Источник

Laravel. Локализованный роутинг

UPD
На этом ресурсе актульность статьи может оказаться умноженной на ноль одним комментарием. Задача описанная в статье может быть с меньшей болью решена библиотекой mcamara/laravel-localization.
За наводку спасибо DExploN!

Кат приподнят. Умноженное на ноль — снизу.

Хочу рассказать вам о том, как в одном проекте возникла проблема с роутингом и как мы её решали.

Сначала наш проект был самым обычным сайтом. Сайт развивался, аудитория расширялась и возникла необходимость поддержки мультиязычности. Проект был на базе фреймворка Laravel и проблем с мультиязычностью не возникло (нужный язык подтягивался из сессии, либо брался дефолтный). Мы написали переводы, прописали ключи переводов вместо захардкоженных фраз и взяли в работу следующие фичи.

Проблема

В какой-то момент команда SEO поняла, что такой подход мешает ранжированию сайта. Тогда команде разработки поступила команда добавить языковые подпапки в УРЛ, кроме языка по умолчанию. Наши роуты приняли примерно такой вид:

Страница Роут ru (язык по умолчанию) Роут en Роут fr
О нас /o-nas /en/about-us /fr/a-propos-de-nous
Контакты /kontakty /en/contacts /fr/coordonnees
Новости /novosti /en/news /fr/les-nouvelles

Всё встало на свои места и мы снова принялись за новые фичи.
Чуть позже возникла необходимость развернуть приложение на нескольких доменах. В целом эти сайты имеют одну БД, но в зависимости от домена могут меняться некоторые настройки.
Некоторые сайты могут быть мультиязычные (причем с ограниченным набором языком, а не со всеми поддерживаемыми), некоторые — только один язык.

Было принято решение обрабатывать все домены одним приложением (nginx проксирует все домены на один апстрим).

Набор поддерживаемых конкретным сайтом языков и язык по умолчанию должен настраиваться в админке, что на корню зарубило вариант конфига/env-переменных. Стало ясно, что текущее решение не удовлетворяет наши хотелки.

Решение

Для упрощения картины и демонстрации решения я развернул новый проект на laravel версии 6.2 и отказался от использования БД. В версиях 5.x отличия незначительные (но расписывать их я, конечно же, не буду).

Код проекта доступен на GitHub

Для начала нам нужно указать в конфигурации приложения все поддерживаемые языки.

Нам понадобится сущность сайта Site и сервис определения настроек сайта.

Источник

Оцените статью