July 30th, 2007
Mod_Rewrite .htaccess и Wildcard DNS - Пренасочване на subdomain към главен domain
След няколко часа “борба” с mod_rewrite успешно подкарах пренасочването на субдомейните. Общо взето всичко става в две стъпки - настройка на DNS сървъра и добавяне на няколко реда в .htaccess
Стъпка 1: настройка на DNS
С Wildcard DNS се пренасочват всички субдомейни към главния домеийн. Ако сте на хостинг или няма как да пипате по конфигурацията, помолете учтиво вашата хостинг компания да ви пусне Wildcard DNS-a, те трябва да знаят какво е това. Първо да уточним какво е named. Това е всъщност DNS сървъра, стартиран на вашата машина. По принцип като добавяте субдомейни, трябва да изчаквате известно време за да се актуализират записите в по главните сървъри. Ако разполагате със собствен сървър трябва да направите следното:
- Отворете / Създайте файла /var/named/yourdomain.com.db
- Добавете този ред -> *.yourdomain.com. IN CNAME yourdomain.com.
- Запишете файла и рестартирайте named
Стъпка 2: Добавяне на редовете в .htaccess . При мен субдомейните пренасочват към следната страница: index.php?show=profile&action=view&username=myusername.
- Ако нямате .htaccess файл създайте го
- Добавете следните редове ( по моя пример) :
- RewriteCond %{HTTP_HOST} !www\.
RewriteCond %{HTTP_HOST} (.*)\.yourdomain\.com
RewriteRule .* index.php?show=profile&action=view&username=%1 [L]
- RewriteCond %{HTTP_HOST} !www\.
Можете да пренасочвате към където си пожелате примерно искате blog.yourdomain.com да сочи към yourdomain.com/blog.php трябва да напишете следното
- RewriteCond %{HTTP_HOST} blog\.yourdomain\.com
- RewriteRule .* blog.php [QSA, L]
QSA означава Query String Append и ще добави query стринг-а към blog.yourdomain.com
Запазете .htaccess файла и рестартирайте Apache.
Готово! Сега можете да тествате и да се радвате на новите си поддомейни.