Официальный сайт студ.городка НГТУ
Программирование и БД » [.htaccess] Нужна помощь по mod_rewrite 

#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

#7  11.05.10 13:58

Re: [.htaccess] Нужна помощь по mod_rewrite

Кощей написал(а):

чтобы со всех поддоменов, запросы отправлялись на основной домен

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

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

#9  13.05.10 10:54

Re: [.htaccess] Нужна помощь по mod_rewrite

JONIK, одного ДНСа тут не хватит... даже если запрос придет на сервер, то сервер не будет знать куда его направить...

Offline

Программирование и БД » [.htaccess] Нужна помощь по mod_rewrite 

ФутЕр:)

© Hostel Web Group, 2002-2025.   Сообщить об ошибке

Сгенерировано за 0.030 сек.
Выполнено 11 запросов.