Yii2 как убрать web из адреса URL

Yii2 убрать web из адреса URL

От автора: приветствую вас, друзья. Из этой статьи вы узнаете о нужном вопросе при работе с фреймворком Yii2: как в Yii2 убрать web из адреса. Вопрос действительно нужный, поскольку в URL сегмент web, указывающий на папку публичной части приложения, явно лишний и точно будет мешать построению ЧПУ в дальнейшем.

Итак, сразу после установки наш сайт доступен по адресу yii2/web, поскольку именно в каталоге web и находится публичная часть нашего приложения. Если же мы попытаемся обратиться к корню сайта, убрав сегмент ненужный сегмент из адреса, тогда увидим листинг корневой папки (если показ листинга не запрещен настройками сервера).

Yii2 убрать web из адреса URL

Такой вариант вряд ли кому-то понравится, хотелось бы, чтобы главная страница сайта была доступна при обращении к доменному имени, без добавления туда общедоступной директории. Благо, сделать это достаточно просто. Давайте узнаем, как из url убрать лишний сегмент.

Для решения задачи нам потребуется два файла .htaccess. Первый файл мы создадим в корне сайта и добавим в него следующие две строчки кода:

RewriteEngine on
RewriteRule ^(.+)?$ /web/$1

Что делает этот код? Первая строка включает модуль mod_rewrite, с помощью которого можно управлять адресами. Ну а вторая строка полученный запрос (URL) перенаправляет в папку приложения.

В свою очередь в публичной директории создадим второй файл .htaccess и добавим в него вот эти четыре строки кода:

RewriteBase /
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . index.php

Здесь мы устанавливаемый базовый URL и добавляем условия, которые говорят, что если запрос не идет к реально существующему файлу или каталогу (например, скрипты и стили), тогда его нужно перенаправить на файл index.php.

Давайте теперь попробуем обратиться к корню сайта, не указывая ненужную часть.

Yii2 убрать web из адреса URL

Отлично, все получилось. Также можно использовать возможности Open Server или вашего сервера, где можно указать, какую папку считать корневой при обращении к домену сайта. В данном случае мы можем указать корневой директорией публичный каталог.

Давайте очистим содержимое файлов .htaccess или просто удалим их. Теперь обратимся к меню Open Server Настройки — вкладка Домены. В открывшейся вкладке выберем способ управления доменами Ручное + Автопоиск и добавим в качестве имени домена — yii2, а в качестве папки домена — \yii2\web.

Yii2 убрать web из адреса URL

После сохранения и перезапуска сервера мы должны обращаться к главной странице сайта по доменному имени, без каталога web. Теперь вы знаете, как из URL убрать ненужное звено адреса. Более того, вы знаете, как из адреса убрать его несколькими способами. На этом сегодня все. Больше о фреймворке вы можете узнать из наших бесплатных или платных уроков.

Самые свежие новости IT и веб-разработки на нашем Telegram-канале

Фреймворк YII2: теория и первая практика

Овладейте азами фреймворка Yii2 за 5 дней!

Получить

Метки:

Комментарии Вконтакте:

Комментарии Facebook:

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *

Можно использовать следующие HTML-теги и атрибуты: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>

Я не робот.

Spam Protection by WP-SpamFree