#1 09.05.10 15:52
[.htaccess] Нужна помощь по mod_rewrite
Идея такова - есть хостинг с неограниченным количеством алиасов, хочу написать .htaccess чтобы по обращению к разному домену выдавался разный сайт. Сайты лежат соответственно в папках "www.site.ru".
Вот чего удалось добиться:
RewriteEngine On
RewriteCond %{HTTP_HOST} ^www\..* [nc]
RewriteRule ^(.*)$ %0/index.php?a=$1 [QSA,L]
RewriteCond %{HTTP_HOST} ^.* [nc] #тупо конечно
RewriteRule ^(.*)$ www.%0/index.php?a=$1 [QSA,L]
т.е. все идет через index.php что не очень гуд.
Повилось несколько проблем.
1) Если в строке "RewriteCond %{HTTP_HOST} ^.* [nc] #тупо конечно" писать "!^www\..*" (ну типо отрицание) вместо "^.*", то тогда почему-то переменная %0 становиться пустой.
2) Если нужный путь писать не в виде "%0/index.php?a=$1", а в виде "%0/$1" то выдает ошибку сервера. Че делать не знаю.
Если кто сможет объяснить в чем мои ошибки и помочь решить эти проблемы буду премного благодарен.
Offline
#2 10.05.10 11:31
Re: [.htaccess] Нужна помощь по mod_rewrite
1. а почему именно через mod_rewrite? почему не назначить каждому домену свою папку? или хостинг этого не позволяет? или таким образом хочется нае**ть хостера? как-то все через *опу выглядит...
2. не совсем понятен твой подход в написании таких правил... почему не делать сравнение с каждым существующим доменом? понятно, что в теории у тебя их может быть неограниченное кол-во, но реально-то их вполне известное кол-во... т.е. писать кондишен на каждый домен и дергать свой скрипт при этом... ну, и не забывать еще дополнительные папки со всякими там картинками, скриптами и т.п.
Исправлено Jaguar (10.05.10 11:35)
Offline
#3 10.05.10 12:13
Re: [.htaccess] Нужна помощь по mod_rewrite
Jaguar, у хостера ограничение на X мультидоменов, а самих доменов уже в полтора раза больше. Просто текущий тариф всем остальным устраивает и всего остального хватает. Не хочется переходить на новый тариф и переплачивать только ради того чтобы подключить несколько доменов.
Jaguar написал(а):
или таким образом хочется нае**ть хостера?
Модно и так сказать :)
Jaguar написал(а):
не совсем понятен твой подход в написании таких правил...
По-моему как раз таки понятно :) Т.е. ты правильно написал что доменов может быть сколько угодно в теории именно поэтому и хочется сделать правило "универсальным". И не хочется каждый раз при добавлении нового домена дописывать правила.
Сейчас остановился на том что в корне положил файлик и через него отдаю все остальные. И вообще думаю что явное указание пути в виде "%0/$1" не работает именно из-за настроек у хостера. Наверное от таких хитрожопых :)
Offline
#4 11.05.10 12:24
Re: [.htaccess] Нужна помощь по mod_rewrite
Попробовал прописать напрямую для каждого домена. Тоже не работает. Какой-то гон.
RewriteEngine On
RewriteCond %{HTTP_HOST} ^domain.ru [nc,OR]
RewriteCond %{HTTP_HOST} ^www.domain.ru [nc]
RewriteRule ^(.*)$ www.domain.ru/$1 [QSA,L]
Что я делаю не так?
Offline
#5 11.05.10 12:39
Re: [.htaccess] Нужна помощь по mod_rewrite
для мультидоменов:
RewriteCond %{HTTP_HOST} ^([^\.]+)\.site\.ru$ [NC]
RewriteCond %{HTTP_HOST} !^www\.site\.ru$ [NC]
RewriteRule ^(.*)$ usersites/view.php?ak=%1&show=$1 [L,QSA]
тогда запросы вида siski.site.ru будет перенаправляться на site.ru/usersites/view.php?ak=siski&show=, а например siski.site.ru/gallery будет перенаправляться на site.ru/usersites/view.php?ak=siski&show=gallery
Offline
#6 11.05.10 13:27
Re: [.htaccess] Нужна помощь по mod_rewrite
qwas2, спасибо, полезно, но не то немного. И кажется iDrum про такое год назад спрашивал. А еще, на сколько мне известно, на хостинге должна быть включена какая-то хрень, чтобы со всех поддоменов, запросы отправлялись на основной домен и эти правила работали.
Offline
#8 12.05.10 22:31
Re: [.htaccess] Нужна помощь по mod_rewrite
Кощей, если ты сам ns-ками рулишь, то нужно добавить запись:
*.site.ru. IN CNAME site.ru
или в панели управления доменом добавить такой алиас, хотя сомневаюсь, что хостер просто так позволит использовать wildcard(((
Исправлено JONIK (12.05.10 22:34)
Offline

