Блог старого компьютера

Блог старого компьютера


Главная Yii 2 Yii2 на shared хостинг (настройка htaccess)

Yii2 на shared хостинг (настройка htaccess)

09.04.2015 05:02 Администратор Yii 2
Печать PDF

У многих создателей сайта на yii2 возникают проблемы при заливке приложения на обычный хостинг который практически не имеет ни каких настроек и изменить в нем DocumentRoot не прдставляется возможным. Первым что надо сделать это написать хостеру если он адекватен то сменит Вам корневую папку, если все так плохо то читаем дальше. Так же версия php может не подойти, тут надо тоже либо найти есть ли возможност ь ее изменить либо опять пишем хостеру, иногда они по запросу ставят ту версию которую нам надо, а иногда увы такой возможности нет и приходится искать более подходящий хостинг. Все мы прекрасно знаем что в yii2 для безопасности системы корневой папкой является папка web в которой нет ни каких особо жизненно важных органов. То есть если к домену прописать адрес web то сайт должен отлично запустится, но такой адрес нас не устраивает. Нам нужно открывать сайт по по прямому названию домена.

 

Для этих целей нам необходимо будет создать 2 файла htaccess и внести некоторые директивы в конфиг нашей системы, обычно это либо main.php либо web.php.

И так создаем файл .htaccess в папке с приложением и пишем в него следующий код:

Options -Indexes
IndexIgnore */*
Options FollowSymlinks
RewriteEngine on
RewriteRule ^(.+)?$ /web/$1

Тем самым мы перекидываем по умолчанию все запросы в папку web.

Далее идем в папку web и создаем такм такой же файл, но уже с таким содержимым:

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

Вот такие вот htaccess файлы у вас должны быть для yii2 на apache сервере. 

После этих действий наш сайт должен уже открываться по основному домену, но думаю вы заметили что в ссылках меню до сих пор присутствует приписка web. Чтоб от нее отказаться необходимо в конфиг дописать следующие строки. У меня конфиг лежит в папке config и называется web.php. В этом файле я указал 'homeUrl' => '/' и в components > request дописал  'baseUrl' => ''. Тем самым избавился от ненужной приписки web. Если быть кратким то нам необходимо сделать чтоб в конфиге у нас были следующие строки:

'homeUrl' => '/',
'components' => [
'request' => [
'baseUrl' => '',
],
],

Ни в коем случае не стираем то что есть в нашем конфиге, а добалвяем того чего не хватает. У меня получилась вот такая вот картина:

 yii2-config

 

Комментарии  

 
0 #2 Оксана 20.02.2016 11:28
Огромное спасибо, все четко с первого раза работает! ;-) Из ваших 4 статей по Yii2 почерпнула больше полезной инфы, чем из всех мануалов до этого :-|

В качестве дополнения к начальной настройке, может, кому-то еще пригодится выставление контроллера по умолчанию, чтобы с корневой папки сайта включался ваш контроллер, а не искался дефолтный "site". Для этого в vendoryiisoftyi i2webapplicatio n.php в строчке
public $defaultRoute = 'site'; и вписываем вместо site свое название контроллера.
Цитировать
 
 
+1 #1 gof 19.08.2015 17:42
Инфа полезна в теории. Но не проверял. Спасибо.
Цитировать
 

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


Защитный код
Обновить

Поиск

Голосование

Что Вы думаете на счет битрикса?