Laravel принудительно перенаправляет в общую папку, когда пользователь не вошел в систему

Я добавил это правило в .htaccess чтобы перенаправить все запросы в общую папку:

RewriteRule ^(.*)$ /public/$1 [L,NC]

Таким образом, я могу лишить public слово из URI, хотя оба mydomain.com/home а также mydomain.com/public/home должно сработать.

Теперь я реализовал базовую аутентификацию пользователя, но что происходит, так это:

  1. если пользователь запрашивает mydomain.com/admin и является не вошел в систему, Laravel перенаправляет его или ее mydomain.com/public/login вместо mydomain.com/login
  2. когда пользователь аутентифицирует себя, Laravel перенаправляет его на mydomain.com/public/admin вместо mydomain.com/admin

Исходя из этого, я предполагаю, что Laravel где-то указывает, что перенаправления должны быть сделаны в /public/whatever, Я пытался выяснить, где redirect() помощник явно указан, но я не смог его найти. Мои вопросы:

  • Правильно ли мое предположение?
  • Если да, где Laravel определяет, что перенаправления должны быть сделаны в /public/whatever? Где я могу найти redirect() помощник?
  • Если нет, почему точки 1 и 2 встречаются?

0

Решение

от документы

апаш

Фреймворк поставляется с открытым файлом / .htaccess, который используется для
URL без index.php. Если вы используете Apache для обслуживания вашего Laravel
приложение, обязательно включите модуль mod_rewrite.

Если файл .htaccess, поставляемый с Laravel, не работает с вашей установкой Apache, попробуйте следующее:

Options +FollowSymLinks
RewriteEngine On

RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^ index.php [L]

Если ваш веб-хостинг не поддерживает параметр FollowSymlinks, попробуйте заменить его на Options + SymLinksIfOwnerMatch.

1

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]