При разработке веб-приложений с помощью Laravel вы могли заметить, что URL-адрес приложения часто включает в себя файл «public» или «index.php». Однако из соображений эстетики и безопасности вы можете удалить эти файлы из URL-адреса. В этой статье мы рассмотрим несколько способов добиться этого в Laravel, а также приведем примеры кода.
Метод 1: изменение файла.htaccess
Файл.htaccess отвечает за настройку веб-сервера Apache. Изменяя этот файл, вы можете перезаписать URL-адреса и удалить из URL-адреса файл «public» или «index.php». Вот как это можно сделать:
- Найдите файл.htaccess в корневом каталоге вашего проекта Laravel.
- Откройте файл и добавьте следующий код:
RewriteEngine On
RewriteRule ^(.*)$ public/$1 [L]
Этот код перенаправляет все запросы в «общедоступную» папку, фактически удаляя ее из URL-адреса. Сохраните файл и протестируйте свое приложение. Если все работает правильно, «публичная» папка больше не будет видна в URL.
Метод 2: Конфигурация сервера
Если у вас есть доступ к конфигурации сервера, вы можете изменить ее, чтобы получить желаемую структуру URL-адресов. Вот пример использования конфигурации Apache VirtualHost:
- Откройте файл конфигурации Apache для вашего проекта Laravel. Этот файл обычно находится в каталоге
/etc/apache2/sites-available
. - Найдите раздел
<VirtualHost>
, соответствующий вашему проекту Laravel. - Обновите директиву
DocumentRoot
, чтобы она указывала непосредственно на папкуpublic
вашего проекта Laravel. - Сохраните файл и перезапустите сервер Apache.
После обновления конфигурации сервера «общедоступная» папка будет скрыта из URL-адреса.
Метод 3: использование встроенного сервера Laravel
Во время разработки вы можете использовать встроенный сервер Laravel для обслуживания вашего приложения без необходимости использования «общедоступной» папки в URL-адресе. Вот как это сделать:
- Откройте терминал или командную строку и перейдите в корневой каталог вашего проекта Laravel.
- Выполните следующую команду:
php artisan serve
Эта команда запускает сервер разработки, который по умолчанию прослушивает http://localhost:8000
. Теперь вы можете получить доступ к своему приложению, не включая «общедоступную» папку в URL-адрес.
Метод 4: перезапись URL-адресов в NGINX
Если вы используете NGINX в качестве веб-сервера, вы можете перезаписать URL-адрес, чтобы удалить «общедоступную» папку из URL-адреса. Вот пример конфигурации:
- Откройте файл конфигурации NGINX для проекта Laravel.
- Внутри блока
server
добавьте следующий код:
location / {
try_files $uri $uri/ /index.php?$query_string;
}
- Сохраните файл и перезапустите NGINX.
При такой конфигурации NGINX будет внутренне перенаправлять запросы в файл «public/index.php», эффективно удаляя его из URL-адреса.
В этой статье мы рассмотрели несколько способов удаления файла «public» или «index.php» из URL-адреса в Laravel. Мы рассмотрели изменение файла.htaccess, изменения конфигурации сервера, использование встроенного сервера Laravel и перезапись URL-адресов в NGINX. Выберите метод, который соответствует вашим требованиям, и реализуйте его в своем проекте Laravel, чтобы получить более чистые и безопасные URL-адреса.