Yii2 как убрать web из адреса URL
Коллеги всем привет.
В сегодняшней не большой статье я вам покажу как можно убрать из адреса web в yii2. Сразу после установки вашего сайта он доступен по адресу yii2/web, потому что именно в директории web находится вся публичная часть вашего сайта. Если мы просто перейдем в корень сайта то мы увидим список корневой папки. Давайте сделаем так, чтобы главная страница сайта была доступна при обращении к доменному имени, без добавления директории web.
Ну такой вариант нам точно не подходит.
Первое чтобы сделаем, это перейдем в конфигурационный файл сайта под названием web.php и кое-что в нем поправим.
1. Найдите в этом файле параметр под названием urlManager, он у вас будет по умолчанию закомментирован. Нам же нужно наоборот его раскомментировать.
'urlManager' => [
'enablePrettyUrl' => true,
'showScriptName' => false,
'rules' => [
],
],
2. Найдите в этом же файле параметр под названием request, и нам нужно в него добавить:
'baseUrl'=> '',
Все, с конфигурационным файлом мы закончили.
Следующим шагов нам нужно создать два файла .htaccess. Этот файл отвечает за управления самого веб сервера apache или nginx.
Первый файл .htaccess нам нужно создать самой директории web, и добавляем в него:
RewriteEngine On RewriteBase /
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . index.php
Второй файл .htaccess нам нужно создать в корне сайта, и добавляем в него:
Options +FollowSymLinks
IndexIgnore */*
RewriteEngine on
RewriteCond %{REQUEST_URI} !^/(web)
RewriteRule ^assets/(.*)$ /web/assets/$1 [L]
RewriteRule ^css/(.*)$ web/css/$1 [L]
RewriteRule ^js/(.*)$ web/js/$1 [L]
RewriteRule ^images/(.*)$ web/images/$1 [L]
RewriteRule (.*) /web/$1
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /web/index.php
Вот и все, теперь когда вы будите заходить на сайт, в адресной строке уже не будет web.
Всем спасибо, я надеюсь что вам моя статья хоть чем-то помогла.