Если вы установили Laravel в свой основной домен для учетной записи в папке public_html (корневой каталог основного домена), но не хотите, чтобы ваши посетители видели URL-адрес домена по умолчанию.com/public, выполните следующие действия:
С помощью символической ссылки (рекомендуется)
1. Предположим, что у вас есть приложение Laravel в каталоге /home/user/laravel. (пользователь — это имя пользователя вашей учетной записи хостинга)
Подключитесь к вашему серверу по SSH или используйте Терминал в Cpanel и перейдите домой с помощью cd ~.
Создайте резервную копию каталога public_html, если в нем есть какой-либо важный файл.
Удалите каталог public_html, запустив rm -rf public_html.
2. Теперь создайте символическую ссылку с именем public_html, указывающую на общедоступный каталог ваших приложений laravel, выполнив:
ln -s /home/user/laravel/public public_html
Теперь public_html — это просто символическая ссылка на общедоступный каталог вашего приложения.
Если что-то изменится в общедоступном каталоге вашего приложения, оно будет немедленно доступно пользователям.
С помощью .htaccess
Найдите файлы .htaccess в вашем public_html (или корневой папке вашего домена). По умолчанию точечные файлы скрыты в вашем файловом менеджере. Чтобы просмотреть все точечные файлы, войдите в свою cPanel и щелкните «Диспетчер файлов», где вы сможете увидеть все файлы в своей учетной записи. Чтобы отобразить скрытые файлы (также называемые «точечными» файлами), нажмите кнопку «Настройки» в правом верхнем углу диспетчера файлов. Если вы по-прежнему не можете найти файл .htaccess, создайте новый файл в диспетчере файлов с именем .htaccess.
После открытия файла .htaccess добавьте следующий код:
<IfModule mod_rewrite.c>
<IfModule mod_negotiation.c>
Options -MultiViews
</IfModule>
RewriteEngine On
# Prevent direct access to the "public" folder - redirect to root
RewriteCond %{THE_REQUEST} ^[A-Z]{3,9}\ /public/
RewriteRule ^public/(.*) /$1 [R=302,L]
# Redirect Trailing Slashes If Not A Folder...
# - but look for the file in the "public" folder
# (ensure we are not already in the "public" folder)
RewriteCond %{REQUEST_URI} !^/public/
RewriteCond %{DOCUMENT_ROOT}/public/$1 !-d
RewriteRule ^(.*)/$ /$1 [R=302,L]
# Rewrite "everything" to the "public" subdirectory if not already
# This ignores existing files/dirs in the document root
RewriteCond %{REQUEST_URI} ^/(.*)
RewriteRule !^public/ public/%1
# Handle Front Controller... (as before)
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^ index.php [L]
</IfModule>
Нажмите «Сохранить изменения». После этого вы и ваши посетители смогут получить доступ к вашей общей папке Laravel через домен.com. Имейте в виду, что вам, возможно, придется очистить кеш браузера.
Если вы хотите установить Laravel в папку, отличную от папки public_html (например, если у вас уже есть другой сайт на вашем основном доменном имени), мы настоятельно рекомендуем вам создать для него поддомен (например, laravel.domain.com). . После установки Laravel на вновь созданный субдомен вы можете выполнить описанные выше шаги. Это также справедливо, если вы установили Laravel в дополнительный домен под своей учетной записью.