Yii2 framework | настройка .htaccess когда сайт не в корне


Я описывал правильную настройку .htaccess файлов для yii2 framework тут. По данной ссылке описана настройка .htaccess в том случае, когда сайт находится в корне сервера.

Когда сайт находится не в корне а в подкаталоге - это несколько другая ситуация.

По просьбам посетителей, опишу как это сделать для сайта в поддиректории.

Сразу добавлю - этот пример для advanced шаблона.

Предположим что наш подкаталог называется "subdirectory", тогда:

1) В нашу subdirectory/ кладем .htaccess:

AddDefaultCharset UTF-8

Options -Indexes
Options FollowSymlinks

RewriteEngine On

RewriteCond %{REQUEST_URI} ^/(subdirectory/admin)
RewriteRule ^admin(\/?.*)$ backend/web/$1 [L]

RewriteCond %{REQUEST_URI} ^/(subdirectory)
RewriteRule ^(\/?.*)$ frontend/web/$1 [L]

2) В subdirectory/frontend/config/main.php добавляем:

       .....

    'homeUrl' => '/subdirectory',       //       Это
    'components' => [
	
	
       .....

	
                'request' => [
                    'baseUrl' => '/subdirectory',       //       Это
                ],
                'urlManager' => [
                    'enablePrettyUrl'	=>	true,
                    'showScriptName'	=>	false,
                ],

        ]
        .....

 

3) В subdirectory/backend/config/main.php добавляем:

       .....

    'homeUrl' => '/subdirectory/admin',       //       Это
    'components' => [
	
	
       .....

	
                'request' => [
                    'baseUrl' => '/subdirectory/admin',       //       Это
                ],
                'urlManager' => [
                    'enablePrettyUrl'	=>	true,
                    'showScriptName'	=>	false,
                ],

        ]
        .....

4) И кладем в subdirectory/frontend/web/ и subdirectory​/backend/web/ два одинаковых .htaccess файла:

RewriteEngine on

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

RewriteRule . index.php

 

Вот и все.

Теперь по ссылке http://www.site.ru/subdirectory/ - будет появляться frontend нашего сайта, а по ссылке http://www.site.ru/subdirectory/admin/ будет backend сайта.

Для особенных уточню: название директории subdirectory можно менять, но при этом его нужно и поменять во всех вышеупомянутых файлах.

 

 


Тэги:

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

Прокомментировать »

 
 
emsi
23.06.2016
 

опечатка: В subdirectory/backend/config/mail.php вместо main

emsi
23.06.2016
 

из п.2 п.3 - не совсем понятно куда добавлять (в какую строку? или после какого текста)

emsi
23.06.2016
 

РАБОТАЕТ, СПАСИБО! p.s. return [ 'homeUrl' => '/subdirectory', 'components' => [ 'request' => [ 'baseUrl' => '/subdirectory', ], 'urlManager' => [ 'baseUrl' => '/subdirectory', 'enablePrettyUrl' => true, 'showScriptName' => false, ], ], 'id' => 'app-frontend',

emsi
23.06.2016
 

как правильно настроить robots.txt для этого всего?

LAVRIK
23.06.2016
 

emsi, по поводу опечатки, спасибо, поправил. По поводу "куда добавлять" - нужно добавлять/изменять то, чего ещё не хватает. По поводу robots.txt - это уже вам нужно определиться как вы его хотите настроить. Одно скажу: класть его нужно во frontend/web/ а не в корень как обычно.

and_y87
5.07.2016
 

Всё работает! Спасибо! Кто не разобрался как это сделать, читайте внимательнее! Всё супер!

 

Прокомментировать

 
 
Сообщение *
 
Проверочный код *
 
 
 
Яндекс.Метрика