Настройка файла .htaccess в yii2.
  • 1338

Настройка .htaccess в yii2.

Автор: admin | 20 июня (Ср.) 2018г. в 15ч.16м.

Конфигурация htaccess для yii2 advanced шаблона.

В корневой директории создаем файл .htaccess с таким содержимым:
AddDefaultCharset utf-8  

<IfModule mod_autoindex.c>
    Options -Indexes
</IfModule>

# Mod_Rewrite
<IfModule mod_rewrite.c>
    # Enable symlinks
    Options +FollowSymlinks
    # Enable mod_rewrite
    RewriteEngine On

#no end slesh
    RewriteCond %{REQUEST_FILENAME} !-d
    RewriteCond %{REQUEST_URI} ^(.+)/$
    RewriteRule ^(.+)/$ /$1 [R=301,L]

    # Backend redirect
    RewriteCond %{REQUEST_URI} ^/backend
    RewriteRule ^backend(.*) /backend/web/$1 [L]

    # Frontend redirect
    RewriteCond %{REQUEST_URI} ^(.*)$
    RewriteRule ^(.*)$ frontend/web/$1

</IfModule>

Таким образом web из url можно убрать.

Далее в папках ./frontend/web и ./backend/web создаем файлы .htaccess с таким содержимым:

AddDefaultCharset UTF-8
RewriteEngine on

RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d

RewriteRule . index.php

Тут мы направляем весь трафик через точку входа index.php

Теперь для обращению к сайту site.com/frontend/web/ не нужно указывать в урл
/frontend/web/

К админке вместо site.com/backend/web/ теперь обращаться site.com/backend/

Конфигурация htaccess для yii2 basic шаблона.

В корневой папке фреймворка создаем htaccess с такими параметрами:
<IfModule mod_rewrite.c>
    RewriteCond %{REQUEST_URI} ^/.*
    RewriteRule ^(.*)$ web/$1 [L]

    RewriteCond %{REQUEST_URI} !^/web/
    RewriteCond %{REQUEST_FILENAME} !-f [OR]
    RewriteCond %{REQUEST_FILENAME} !-d
    RewriteRule ^.*$ web/index.php
</IfModule>​

Далее в папке ./web создаем файлы .htaccess с таким содержимым:

AddDefaultCharset UTF-8
RewriteEngine on

RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d

RewriteRule . index.php

Тут перенаправляем все запросы на index.php

Что дальше.

Так же конечно нужно настроить ЧПУ в конфиге сайта. Как это сделать, я описывал в статье про
настройку урл в Yii2.

Еще может понадобиться сделать редирект на без/с www или http/https, что тоже делается в
htaccess. ,убирать/устанавливать слеш в конце url. Этими приемами я также поделился в
этой статье.

Приветствую!

Меня зовут Сергей. Я - автор этого блога.

Если Вам был полезен материал на моем сайте, поддержите пожалуйста мой проект, чтобы о нем узнали другие люди - кликните plizz :) на иконку в соц. сети, чтобы поделиться материалом с другими.