На этот вопрос уже есть ответ здесь:
Я использую Laravel 5.6, и я могу загружать / редактировать файлы только в / в корень веб-сайта ( / public_html
). Я не могу изменить корень веб-сайта на / public_html / public
. Можно ли переписать все запросы (например, /
, / login
, /css/styles.css
и т. Д.) ) внутри / public_html / public /
?
Я не знаю, как записывать файлы .htaccess.
Я пробовал много разных вещей, которые нашел в Интернете. Последнее, что я пробовал, это это в /public_html/.htaccess
:
RewriteEngine On
RewriteRule ^(.*)$ /public/$1 [L]
RewriteRule ^ (. *) $ / Public / $ 1 [L]
Вам просто нужно дополнительное условие для предотвращения цикла перезаписи. Например:
RewriteCond %{ENV:REDIRECT_STATUS} ^$
RewriteRule (.*) /public/$1 [L]
Переменная среды REDIRECT_STATUS
пуста при первоначальном запросе и имеет значение 200 (OK) после первой успешной перезаписи.
Начальные / конечные привязки ( ^
и $
) не требуются, поскольку регулярное выражение по умолчанию является жадным.