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

  • Последнее обновление: 3 Апреля 2024 г.
  • Просмотры: 35
  • Автор: Админ
Yii2 как убрать web из адреса URL

Коллеги всем привет.

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

 

yii2_delete_web

Ну такой вариант нам точно не подходит.


 

Первое чтобы сделаем, это перейдем в конфигурационный файл сайта под названием web.php и кое-что в нем поправим.

1. Найдите в этом файле параметр под названием urlManager, он у вас будет по умолчанию закомментирован. Нам же нужно наоборот его раскомментировать.

'urlManager' => [
    'enablePrettyUrl' => true,
    'showScriptName' => false,
    'rules' => [
    ],
],

yii2_delete_web

 

2. Найдите в этом же файле параметр под названием request, и нам нужно в него добавить:

 'baseUrl'=> '',

yii2_delete_web

Все, с конфигурационным файлом мы закончили.


 

Следующим шагов нам нужно создать два файла .htaccess. Этот файл отвечает за управления самого веб сервера apache или nginx.

Первый файл .htaccess нам нужно создать самой директории web, и добавляем в него:

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

yii2_delete_web

 

Второй файл .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

yii2_delete_web


 

Вот и все, теперь когда вы будите заходить на сайт, в адресной строке уже не будет web.

yii2_delete_web


 

Всем спасибо, я надеюсь что вам моя статья хоть чем-то помогла.

ПОХОЖИЕ СТАТЬИ

Yii2 - как отключить CSRF валидацию токена
Как получить расширение файла - PHP
Как сгенерировать случайное и уникальное число в PHP
Что такое JPEG формат, его особенности, плюсы и минусы