Laravel 7.x – Как удалить «общедоступный» из URL-адреса?

Застрял с этим надолго. Я нашел похожие вопросы, но ни один из ответов не работает для меня! .htaccess в корневой папке выглядит так:

RewriteEngine On 
RewriteCond %{REQUEST_URI} !^/public/ 
RewriteRule ^(.*)$ /public/$1 [L,QSA]

person Anant Mishra    schedule 14.05.2020    source источник
comment
Почему вы не используете файл htaccess Laravel по умолчанию?github.com/laravel /laravel/blob/master/public/.htaccess   -  person Karl Hill    schedule 15.05.2020
comment
@KarlHill Я попробовал файл по умолчанию, но все равно не работает! Должен ли я также изменить файл htaccess в общей папке?   -  person Anant Mishra    schedule 15.05.2020


Ответы (2)


Создайте файл с именем «.htaccess» в корне и добавьте приведенный ниже код. Вот и все

RewriteEngine On

RewriteCond %{REQUEST_FILENAME} -d [OR]
RewriteCond %{REQUEST_FILENAME} -f
RewriteRule ^ ^$1 [N]

RewriteCond %{REQUEST_URI} (\.\w+$) [NC]
RewriteRule ^(.*)$ public/$1 

RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^ server.php
person Nabin Rawat    schedule 27.09.2020

Пример здесь находится в каталоге /public. Вам также необходимо правильно настроить сервер и настроить его только на каталог /public вместо root. Вам не нужен файл .htaccess в корне.

Вам понадобится httpd-vhosts.conf примерно следующего содержания:

<VirtualHost *:80>
    ServerAdmin webmaster@localhost
    ServerName yourapp.com
    ServiceAlias www.yourapp.com
    DocumentRoot /var/www/yourapp/public
</VirtualHost>

Обратите внимание на эту строку:

DocumentRoot /var/www/yourapp/public

Подробнее о настройке веб-сервера Laravel можно прочитать здесь.

person Karl Hill    schedule 15.05.2020