Как реализовать автоподдомены?

L
На сайте с 17.05.2013
Offline
88
653

Как сделать из такой конструкции site.ru/index.php?id=555 такую 555.site.ru

Тоесть фактически чтобы поддомен был виртуальным, все реализовывалось на уровне скриптов (чтобы не создавалась папка 555 для поддомена)

MI
На сайте с 16.07.2008
Offline
74
#1

А какой веб сервер у вас?

Для начала настроить Wildcard DNS record для домена site.ru

L
На сайте с 17.05.2013
Offline
88
#2

Вобщем настроил вебсервер что при заходе на 555.site.com обрабатывается скриптом site.com/index.php

Подскажите правило для htaccess чтобы в site.com/index.php заходила переменная $a=555

Тоесть

site.com/index.php?a=555 ------> 555.site.com

ИшТы
На сайте с 11.02.2014
Offline
11
#3

RewriteEngine On

RewriteCond %{HTTP_HOST} ^www.site.com$ [NC]

RewriteCond %{REQUEST_URI} ^index.php?a=555* [NC]

RewriteRule ^(.*)$ http://555.site.com/$1 [L,R=301]

больше тут

Возник вопрос по серверному администрированию? Смотрите здесь (http://www.tech-notes.net/) Не нашли ответ? Напишите мне с помощью формы обратной связи (http://www.tech-notes.net/write-me/)
L
На сайте с 17.05.2013
Offline
88
#4

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

ИшТы
На сайте с 11.02.2014
Offline
11
#5

REQUEST_URI - это все, что идет после слэша site.com/*

Соответственно Вы можеде добавлять по аналогии редиректы на любые домены и поддомены, меняя "555" на то, что Вам нужно. Либо 555.site.com, на новый домен

rewiaca
На сайте с 15.07.2009
Offline
93
#6

На fastvps к примеру:

1. В dns manager'e добавляем в записях

* www IP

2. В ISP редактируем WWW Домен и alias меняем

с www на *

L
На сайте с 17.05.2013
Offline
88
#7
RewriteEngine On
RewriteCond %{HTTP_HOST} ^www.site.com$ [NC]
RewriteCond %{REQUEST_URI} ^index.php?a=555* [NC]
RewriteRule ^(.*)$ http://555.site.com/$1 [L,R=301]

Написал, так в хтаксес. Теперь в файле index.php: print_r($_GET);

ЗАхожу на 555.site.com - ничего не отображается, хотя по идее должно показать массив в котором первым элементом переменная а?

ПОдскажите что не так сделал?

siv1987
На сайте с 02.04.2009
Offline
427
#8
luckydan:
хотя по идее должно показать массив в котором первым элементом переменная а?

По идее как раз не должно, и было бы странно если это было наоборот. Где вы здесь переменную 'a' видите? Вообще код довольно стремный, непонятно что вы пытались им сделать. Если хотите чтобы все запросы с поддоменов реврайтились на index.php с переменной а в качестве имени поддомена, то код будет выглядеть примерно так

RewriteEngine On

RewriteCond %{HTTP_HOST} ^(?:www\.)?(.+?)\.site\.com$ [NC]

RewriteRule ^(.*) index.php?a=%1 [L,QSA]

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