Задача создать поддомен (субдомен) обычно не вызывает затруднений, в Интернете достаточно руководств о том как это сделать, применительно к различным хостингам и серверам. Только вот к Руцентру это совсем не относится.
Создание поддомена на хостинге nic.ru совсем не тривиальная задача, потому что в стандартном FAQ хостера описание процесса создания поддомена третьего уровня не поддается анализу человеческим мозгом. При звонке в службу поддержки отвечают, что проще добавить поддомен в список сайтов и не париться с настройками.
Руководство как создать поддомен на хостинге Руцентра (nic.ru)
Нам понадобиться доступ в административную панель хостера, также не помешает возможность доступа по ftp, но без нее можно обойтись. В качестве примерного имени сайта будем использовать имя mysite.ru
1. Заходим в административной панели хостинга во вкладку Веб-сервер/Управление и включаем mod_rewrite (rewrite_module), если он еще не был включен.
2. Заходим во вкладку Веб-сервер/Сайты/mysite.ru, выбираем нужный сайт и включаем использование .htaccess, если эта функция еще не включена.
3. В этой же вкладке Веб-сервер/Сайты/mysite.ru добавляем poddomen.mysite.ru в список синонимов сайта mysite.ru, где poddomen — имя нашего поддомена.
4. Теперь необходимо создать нужную директорию, в корневой папке создаем папку subdmn, а в ней папку poddomen. Таким образом корневая папка поддомена будет находится по адресу mysite.ru/subdmn/poddomen.
5. Добавляем в файл .htaccess следующие строки:
1 2 3 4 5 6 | RewriteEngine On RewriteCond %{HTTP_HOST} ^(.+)\.mysite\.ru$ RewriteCond %{HTTP_HOST} !^www\.mysite\.ru$ RewriteCond %{REQUEST_URI} !^/subdmn RewriteRule ^(.*) %{HTTP_HOST}$1 RewriteRule ^(www\.)?(.+)\.mysite\.ru(.*) /subdmn/$2%{REQUEST_URI} [L] |
Не забудьте вместо mysite\.ru указать ваше доменное имя и доменную зону.
Ваш поддомен не сразу будет работать так как нужно, придется подождать пару часов, пока сервер хостера примет новые настройки.
Добрый день! Спасибо за статью, хотел спросить 1 нюанс, если у меня в папке основной с сайтом уже идет редирект всех запросов на index.php:
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule .* index.php [L]
Как правильно было бы переписать ваш код для htaccess что бы работали оба правила?
Не совсем поняла, зачем это нужно. Если у Вас хостинг на nic.ru там можно в настройках личного кабинета указать какой файл будет индексным и нет необходимости прописывать дополнительные правила в htaccess
1) Куда размещать index.html поддомена? в mysite.ru/subdmn/poddomen или в mysite.ru/subdmn/poddomen/docs ?
2) куда размещать.htaccess ? в mysite.ru или в mysite.ru/subdmn/poddomen или в mysite.ru/subdmn/poddomen/docs ?
3) это вы описали процедуру создания поддомена для отдельного сайта или для синонима одного из существующих сайтов?
Работающее решение, например, для WordPress и двух поддоменов:
1.
В панели управления Руцентра
Веб-сервер -> Сайты -> mysite.ru -> Синонимы сайта
Создаём синонимы
poddomen1.mysite.ru
poddomen2.mysite.ru
2.
Через FTP cоздаём подкаталоги
mysite.ru/subdmn/poddomen1
mysite.ru/subdmn/poddomen2
3.
Создаём .htaccess в кодировке UTF-8 без BOM-сигнатуры
и помещаем его в каталог /mysite.ru/docs
4.
Пишем в .htaccess следующее:
#———————
#Options All -Indexes
RewriteEngine On
RewriteCond %{HTTP_HOST} ^(.+)\.mysite\.ru$
RewriteCond %{HTTP_HOST} !^www\.mysite\.ru$
RewriteCond %{REQUEST_URI} !^/subdmn
RewriteRule ^(.*) %{HTTP_HOST}$1
RewriteRule ^(www\.)?(.+)\.mysite\.ru(.*) /subdmn/$2%{REQUEST_URI} [L]
RewriteBase /
RewriteRule ^index\.php$ — [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
#———————
P.S.
Важно, чтобы вордпрессовский блок (всё что после RewriteBase /) был ПОСЛЕ переадресаций поддоменов.
P.P.S.
Вместо
RewriteCond %{HTTP_HOST} ^(.+)\.mysite\.ru$
RewriteCond %{HTTP_HOST} !^www\.mysite\.ru$
RewriteCond %{REQUEST_URI} !^/subdmn
RewriteRule ^(.*) %{HTTP_HOST}$1
RewriteRule ^(www\.)?(.+)\.mysite\.ru(.*) /subdmn/$2%{REQUEST_URI} [L]
можно написать конкретно:
RewriteRule ^subdmn/poddomen1/ — [last]
RewriteCond %{HTTP_HOST} (www.)?poddomen1.mysite.ru [nocase]
RewriteRule (.*) subdmn/poddomen1/$1 [last]
RewriteRule ^subdmn/poddomen2/ — [last]
RewriteCond %{HTTP_HOST} (www.)?poddomen2.mysite.ru [nocase]
RewriteRule (.*) subdmn/poddomen2/$1 [last]
Зачем вы фантазируете на пустом месте? Откуда появилась папка docs? У меня про нее не слова и не нужна она вообще.
.htaccess лежит всегда в корневой папке основного сайта
Добрый вечер!
Создал поддомен.
Установил в поддомен джумлу.
В материалах вставляю картинку самым обычным способом, затем открываю просмотр и вместо картинки выводится строчка «/subdmn/*поддомен*/images/logo.png», т.е. вместо пути site.ru/images/logo.png выводится site.ru/subdmn/*поддомен*/images/logo.png.
Думаю, проблема в правилах .htaccess
Ольга! Подскажите, пожалуйста, как исправить?