Динамические поддомены

12 3
PP
На сайте с 28.05.2014
Offline
1
1983

Здравствуйте.

У меня беда.

Надо сделать надо сделать так, что бы строке браузера отображался поддомен, а в окне содержимое папки сайта.

1. домен.рф/news/... = новости.домен.рф/...

2. домен.рф/news/arch/... = архив.домен.рф/...

Для первого случая нарыл следующее (кириллица в пуникоде):


#RewriteCond %{HTTP_HOST} ^домен.рф
#RewriteRule news/(.*)$ http://новости.домен.рф/$1 [R=301,L]

#RewriteCond %{HTTP_HOST} ^новости.домен.рфi$
#RewriteCond %{REQUEST_URI} !^/news
#RewriteRule ^(.*)$ /news/$1 [L,QSA]

И не работает, 404 ошибка.

Хостинг nic.ru, поддомены прилеплены в админке хостинга.

Подскажите пожалуйста, как правильно редирект для обоих случаев написать?

L1
На сайте с 21.09.2007
Offline
114
#1
PiyPiy:
Здравствуйте.

И не работает, 404 ошибка.
Хостинг nic.ru, поддомены прилеплены в админке хостинга.

Подскажите пожалуйста, как правильно редирект для обоих случаев написать?

Куда именно ведут поддомены сейчас? Нужно что бы все поддомены вели на домен.рф.

siv1987
На сайте с 02.04.2009
Offline
427
#2
PiyPiy:
1. домен.рф/news/... = новости.домен.рф/...

2. домен.рф/news/arch/... = архив.домен.рф/...

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


RewriteCond %{HTTP_HOST} ^архив\.домен\.рф$
RewriteCond %{REQUEST_URI} !^/news/архив/
RewriteRule ^(.*)$ /news/архив/$1 [L,QSA]

RewriteCond %{HTTP_HOST} ^новости\.домен\.рф$
RewriteCond %{REQUEST_URI} !^/news/
RewriteRule ^(.*)$ /news/$1 [L,QSA]
PP
На сайте с 28.05.2014
Offline
1
#3

Простите, но с первого раза не понял.

Пока надо определиться с 1 случаем)

Написал:

RewriteCond %{HTTP_HOST} ^новости\.домен\.рф$

RewriteCond %{REQUEST_URI} !^/news/
RewriteRule ^(.*)$ /news/$1 [L,QSA]

При просмотре:

а) домен.рф/news/... в адресной строке отображается домен.рф/news/..., содержимое страниц тоже отображается благополучно.

б) новости.домен.рф отображается ошибка 404

siv1987
На сайте с 02.04.2009
Offline
427
#4
PiyPiy:
Простите, но с первого раза не понял.

Обычно делают так

RewriteCond %{HTTP_HOST} ^(?:www\.)?([^.]+)\.домен\.рф$

RewriteRule ^(.*)$ /news/%1/$1 [L,QSA]

В вашем случае так не получится, так как для news вы хотите повесить отдельный поддомен.

Если новости.домен.рф отображает 404 ошибку, это говорит о том, что сами поддомены работают, а вот кмс (если ее страница ошибки) не может разобрать адрес, скорее всего который парсится из REQUEST_URI. А в REQUEST_URI в данном случае будут отсутствовать некоторые элементы урла.

Полный "нормальный" адрес - сайт.рф/news/архив/новость.html

Усеченный с поддомена - архив.сайт.рф/новость.html

REQUEST_URI - адрес запроса - для поддомена будет /новость.html, тот который находится в адресной строки.

PP
На сайте с 28.05.2014
Offline
1
#5
siv1987:
...для news вы хотите повесить отдельный поддомен.

Именно так.

siv1987:

Если новости.домен.рф отображает 404 ошибку, это говорит о том, что сами поддомены работают, а вот кмс (если ее страница ошибки) не может разобрать адрес, скорее всего который парсится из REQUEST_URI.

Отображается страница ошибки хостинга, а не CMS.

У ник.ру есть еще днс хостинг, беда не может быть из-за того, что поддомены через в хостинг панели созданы, а не в днс хостинге??

А вот это:

#RewriteCond %{HTTP_HOST} ^домен.рф

#RewriteRule news/(.*)$ http://новости.домен.рф/$1 [R=301,L]

не надо что ли прописывать?

siv1987
На сайте с 02.04.2009
Offline
427
#6
PiyPiy:
Отображается страница ошибки хостинга, а не CMS.

Тогда капайте адреса реврайтов. Для начала начните с простого, зареврайтите все домены на один файл, который например покажет HTTP_HOST.

PiyPiy:
не надо что ли прописывать?

Не обязательно. Это редирект, да к тому еще и закоментированый. Про RewriteEngine On кстати не забыли?

treshnyuk
На сайте с 17.02.2013
Offline
231
#7

ТС, а Вам точно для "динамического" вывода нужны реальные поддомены?

Если не ошибаюсь тебе WildCard DNS нужны. *.домен.рф и уже дальше скриптом выводить информацию на архив.домен.рф, новости.домен.рф, маша.домен.рф, саша.домен.рф, паша.домен.рф....

PP
На сайте с 28.05.2014
Offline
1
#8
siv1987:

Это редирект, да к тому еще и закоментированый.

Да, это с копипаста..:)

siv1987:
Про RewriteEngine On кстати не забыли?

Не забыл.

treshnyuk:
ТС, а Вам точно для "динамического" вывода нужны реальные поддомены?
Если не ошибаюсь тебе WildCard DNS нужны. *.домен.рф и уже дальше скриптом выводить информацию на архив.домен.рф, новости.домен.рф, маша.домен.рф, саша.домен.рф, паша.домен.рф....

Скрипт сторонний имеется ввиду ведь? Не сама CMS?

L1
На сайте с 21.09.2007
Offline
114
#9

Забудьте о скриптах. Выключите все реврайты. И для начала добейтесь что бы вместо любойподдомен.домер.рф открывался ваш сайт а не 404 или другие ошибки.

Что бы это сделать, нужно в DNS на А запись добавить *.домен.рф

Как только выполните, тогда уже тестируйте редиректы.

PP
На сайте с 28.05.2014
Offline
1
#10
L3n1n:
Выключите все реврайты.
И для начала добейтесь что бы вместо любойподдомен.домер.рф открывался ваш сайт а не 404 или другие ошибки.
Что бы это сделать, нужно в DNS на А запись добавить *.домен.рф

Все так. Сайт доступен с любого поддомена типа: любыесимволы.домен.рф

L3n1n:

Как только выполните, тогда уже тестируйте редиректы.

Вот на этой стадии текущая пичаль(

---------- Добавлено 28.05.2014 в 22:41 ----------

siv1987:
Обычно делают так
RewriteCond %{HTTP_HOST} ^(?:www\.)?([^.]+)\.домен\.рф$
RewriteRule ^(.*)$ /news/%1/$1 [L,QSA]

Ошибка хостинга 500. Все урл, начиная с домен.рф

12 3

Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий