Как с помощью .htaccess и настроек Apache, а именно Server Alias *test.ru, сделать субдомены?

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

Возник очень интересный, по крайней мере для меня вопрос. Как с помощью .htaccess и настроек Apache, а именно Server Alias *test.ru, сделать субдомены.

Есть куча готовых решений на счёт субдоменов из папок, ну к примеру, test.ru/sub с помощью .htaccess преобразовать в субдомен sub.test.ru.
Но у меня немного другое. Есть одна папочка page, в ней файлик index.php. Если обратиться к файлику с GET запросом, к примеру test.ru/page/?t=test, то получим контент страницы. Так Вот, как сделать так, чтобы страницы, открывались по адресу test.art-gur.ru, где test - это GET запрос.

У меня получился примерно такой код.
RewriteEngine On
RewriteCond %{HTTP_HOST} !^www\.art-gur.ru
RewriteCond %{HTTP_HOST} ([^.]+)\.art-gur.ru
RewriteRule ^index\.php(.*)$ /page/?t=%1 [L,QSA]

Но он не работает, Я знаю что вроде бы у меня что-то тут не так, но что не знаю.

Заранее спасибо за помощь.
  • Вопрос задан
  • 4491 просмотр
Решения вопроса 2
fenric
@fenric
RewriteEngine On
RewriteCond %{HTTP_HOST} ^([0-9a-zA-Z_\-]+)\.example\.com$
RewriteRule ^(.*)$ index.php?subdomane=$1 [L]


Попробуйте этот пример, и опираясь на него, действуйте дальше...
P.S. очень надеюсь, что поддержка поддоменов, на уровне HTTP сервера решена...
Ответ написан
fenric
@fenric
Код который я вам предоставил рабочий, я очень часто решал такие задачи на самых разных проектах, видимо по всему, у вас не подключен модуль rewrite, замените мой код на этот:

<IfModule mod_rewrite.c>
	RewriteEngine On
	RewriteCond %{HTTP_HOST} ^([0-9a-zA-Z_\-]+)\.example\.com$
	RewriteRule ^(.*)$ index.php?subdomane=$1 [L]
</IfModule>


Если 500 ошибки не будет, и код в свою очередь работать тоже не будет, следовательно подключите этот модуль...
Найдите файл httpd.conf, могу лишь подсказать, что он находится примерно в *nix системе:
/etc/apache2/...
В win системе, там куда вы устанавливали HTTP сервер....
В этом файле найдите строку:
#LoadModule rewrite_module modules/mod_rewrite.so
И удалите в начале символ решётки...

Если вам и это не поможет, значит вам необходимо показать ваш .htaccess, возможно вы допустили синтаксическую ошибку в файле...
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы