Установка другого сайта (на CodeIgniter или Yii) в подпапку и чтобы поддомен ссылался на подпапку
Этот вопрос возник, равно как и всё, о чём мы пишем на Loco, практической необходимостью. Решение работает на демонстрации работы нашей системы Team Sense - demo.teamsense.ru. Сама система функционирует на CodeIgniter, и существующие решения не совсем подходят в силу особенностей этого движка.
Расскажем как привязать поддомен к подпапке, в которую установлен сайт на CodeIgniter.
1. Сначала устанавливаем сайт в подпапку основного сайта, например, /demo. Проверяем, что он заработал по адресу http://домен.ru/demo.
2. Дальше в .htaccess основного домена надо по идее прописать (совет с http://forum.searchengines.ru/showthread.php?t=618353)
RewriteEngine on RewriteBase / RewriteCond %{HTTP_HOST} ^domain.ru RewriteRule demo/(.*)$ http://demo.domain.ru/$1 [R=301,L] RewriteCond %{HTTP_HOST} ^demo.domain.ru$ RewriteCond %{REQUEST_URI} !^/demo RewriteRule ^(.*)$ /demo/$1 [L,QSA]
3. Терерь наш поддомен прикреплён к подпапке demo, и всё бы хорошо, но у CodeIgniter мы избавлялись от присутствия в url - index.php, поэтому в .htaccess прописывали дополнительно директивы перекидки на index.php. Теперь наша подсайт должен обращаться к главному .htaccess, а по правилам наследоваания этого не происходит: если во вложенной папке есть свой .htaccess, то читается только он.
Поэтому мы удалим .htaccess из папки demo, перенеся нужные директивы в основной .htaccess
Итого полный .htaccess теперь выглядит
RewriteEngine on RewriteBase / RewriteCond %{HTTP_HOST} ^teamsense.ru RewriteRule demo/(.*)$ http://demo.teamsense.ru/$1 [R=301,L] RewriteCond %{HTTP_HOST} ^demo.teamsense.ru$ RewriteCond %{REQUEST_URI} !^/demo #RewriteRule ^(.*)$ /demo/$1 [L,QSA] # из .htaccess в папке /demo где установлен CI взял эти 5 строк и удалил тот .htaccess RewriteCond $1 !^(index\.php|images|pics|js|robots\.txt|public) RewriteCond %{REQUEST_URI} !\.(css│js│jpg│gif│png)$ RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d RewriteRule ^(.*)$ index.php?/$1 [L,QSA] ...
Теперь поддомен ссылается на подпапку и работает вложенный сайт. Смотрите пример - demo.teamsense.ru.
Или другая ситуация. Основной сайт на ExpressionEngine, а в папке register я написал приложение по регистрации на мероприятие на Yii.
Тогда в корневом .htaccess
AddDefaultCharset utf-8 RewriteEngine on RewriteBase / RewriteCond %{HTTP_HOST} ^site\.ru$ [NC] RewriteRule ^(.*)$ http://www.site.ru/$1 [R=301,L] RewriteCond %{REQUEST_URI} !^/register RewriteCond $1 !^(images|forms|register|index\.php|admin\.php|robots.txt|sitemap\.xml|js) [NC] RewriteCond %{REQUEST_URI} !\.(css│js│jpg│gif│png)$ RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d RewriteRule ^(.*)$ /index.php/$1 [L,QSA]
AddDefaultCharset utf-8 Options +FollowSymLinks IndexIgnore */* RewriteEngine on # if a directory or a file exists, use it directly RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d # otherwise forward it to index.php RewriteRule . index.php php_value post_max_size 10M php_value upload_max_filesize 10M php_value max_execution_time 200 php_value max_input_time 200
almix
Разработчик Loco, автор статей по веб-разработке на Yii, CodeIgniter, MODx и прочих инструментах. Создатель Team Sense.
Вы можете почитать все статьи от almix'а.
- 14 Разработка приложения на Yii. Урок 14: Выводим список категорий как новый виджет на сайте (29.04.2015)
- 13 Разработка приложения на Yii. Урок 13: Внедряем категории для статей. (29.04.2015)
- 12 Разработка приложения на Yii. Урок 12: Профилирование приложения, включаем кеширование. (20.01.2015)
- 11 Yiico. Видеокурс по разработке сайта на Yii. Урок 11: Отладка приложения, включаем журналирование. (20.01.2015)
- 10 Yiico. Видеокурс по разработке сайта на Yii. Урок 10: Если ваше приложение находится не в корневой папке, а во вложенной. (19.10.2014)
- 9 Разработка сайта на Yii с нуля. Урок 9. Выборка статей определённого автора. (13.08.2014)
- 8 Разработка сайта на Yii с нуля. Урок 8. Вызов в моделях функции, общей для них. Как избегать дублирования кода? (25.07.2014)
- 7 Разработка сайта на Yii с нуля. Урок 7. Изменение количества выводимых записей на странице в CGridView. Включаем сессии Yii. (04.09.2013)
- 6 Разработка сайта на Yii с нуля. Урок 6. Автоматич. отправка оповещений об одобренных комментариях на email автора комментария (11.08.2013)
- 5 Разработка сайта на Yii с нуля. Урок 5. Переименовываем blog в yiico. Изменяем "Home" в breadcrumbs. Включаем Gzip-сжатие. (09.08.2013)
- 4 Курс по Yii с нуля. Урок 4. Дорабатываем простую работу с пользователями: хранение пароля при редактировании пользователя. (13.04.2013)
- 3 Курс по Yii с нуля. Урок 3. Создаём новых пользователей. Организуем простую систему авторизации. Аутентификация, пароли, соли. (20.07.2014)
- 2 Yii + Git (github) на Mac. (24.03.2013)
- 2 Курс по Yii с нуля. Урок 2. Переносим и настраиваем Yii и проект нашего сайта на рабочем сервере. Избавляемся от index.php в url (09.07.2014)
- 1 Git для начинающих. (12.04.2013)
- 1 Курс по Yii с нуля. Урок 1. Устанавливаем Yii на локальном компьютере. Заводим проект будущего сайта. (10.03.2013)
- 0 Composer – пакетный менеджер PHP. Что и как? (22.07.2014)
- 0 Лишь этот голос. Наталья Ром – Хочу говорить крaсиво! Техники речи. Техники общения (23.07.2014)
- 0 Путешественнику на заметку: Необходимые выражения на разных языках (28.11.2014)
- 0 Synology и VPN подключение удалённого компьютера. (31.05.2014)
- 0 MySQL: проверить содержится ли значение в поле столбца (в столбце хранится строка значений через запятую) (22.05.2014)
- 0 Браузер не открывает страницы, а скайп и icq работают. Что делать? (12.05.2014)
- 0 Yii: Статичные страницы (создание, редактирование, удаление) (28.04.2014)
- 0 Yii: Расширение ECKEditor = Связка ckeditor + kcfinder (визуальный редактор с бесплатным файловым менеджером) (28.04.2014)
- 0 Yii: Bootstrap tabs, делаем активной вкладку на которую выполняется переход по ссылке (20.03.2014)