Устанавливаю yii2. Мне необходимо сделать так чтобы по ссылке "site.ru/" - выдавалась стартовая страница, а по ссылке "site.ru/admin/" открывалась админская часть. Сейчас они доступны только по ссылкам "site.ru/backend/web/index.php" и "site.ru/frontend/web/".
ВОПРОС В СЛЕДУЮЩЕМ.
Я нашел множество вариантов как это сделать с помощью htaccess-ов(например здесь https://pro-cod.ru/ubiraem-frontend-web-i-backend-web-yii2.html). И с ними все работает. НО неужели в yii2 нет встроенных способов решений этой проблемы? Неужели нужно обязательно так "костылить"? Может можно просто в каком нибудь конфиге прописать эти урлы и все заработает? Или такого способа не предусмотрено?
Файл .htaccess
позволяет изменять настройки веб-сервера Apache для конкретного хоста. Yii2 не умеет редактировать эту конфигурацию и лишь обрабатывает поступающие запросы к конкретному скрипту.
Вы можете не создавать файл .htaccess
и настроить конфигурацию напрямую в файле конфигурации виртуал хоста Apache, указав DocumentRoot
:
<VirtualHost *:80>
ServerName example.com
DocumentRoot "/path/to/project/frontend/web"
Options +FollowSymlinks
...
</VirtualHost>```
Не надо городить все в кучу. frontend
и backend
это разные хосты. Обычно фронт открывается по запросу site.ru
, а все остальные цепляют на поддомены (admin.site.ru
). Для каждого хоста корневой директорией должна быть директория web. Для фронта /project-path/frontend/web/
, например. Делается это для того, чтобы запросы из сети не могли добраться до файлов основного приложения. Такая вот своеобразная безопасность.
И когда у нас наравне с frontend и backend появляются еще экземпляры приложений (api, forum, payment...), то мы делаем для них отдельный хост и точно также корневой директорией является /project-path/api/web/
.
Теперь представим, что у нас корневой директорией является директория всего проекта и все запросы отправляются туда.Возникает солидный набор костылей в файлах конфигурации хоста,
открывается потенциальная дыра (например, из api
можно добраться до payment
или другой директории).
Айфон мало держит заряд, разбираемся с проблемой вместе с AppLab
Перевод документов на английский язык: Важность и ключевые аспекты
Как настроить авто выход (разлогиниться) в Laravel спустя к примеру 10 мин ?
Изучаю Symfony 5С помощью make:crud создал контроллер Tourist: