Mod_rewrite

clevel

Новичок
Mod_rewrite

День добрый!

Никак не могу найти решение:

есть несколько сайтов в одной директории:
/usr/hosting/main_account/html/domain1
/usr/hosting/main_account/html/domain2
/usr/hosting/main_account/html/domain3

хочется написать правило для Mod_rewrite, чтобы юзер. набрав в адресной строке
http://domain1 попадал на /usr/hosting/main_account/html/domain1/
http://domain2 попадал на /usr/hosting/main_account/html/domain2/
и так далее..

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

Пробовал сделать так:
RewriteRule ^([www\.]?)(.*)\.(.*)/(.*)$ /usr/hosting/main_account/html/$2.$3/$4

не кактит.
Подскажите плз, где я допустил ошибку?

заранее спасибо!
 

WP

^_^
Бытует мнение что mod_rewrite единственный модуль Apache. Оно ошибочно.
 

clevel

Новичок
Хорошо, как есть альтернативные варианты?

-~{}~ 04.10.06 22:24:

Плиз, помогите, направьте дурня!
Уже кучу статей прошерстил, все никак понять не могу, как решить задачу!
 

clevel

Новичок
Это уже читал.
Пробовал вариант "Separate Virtual Host Configuration File" и "Simple Dynamic Virtual Hosts Using"

Проблема в следующем:

1. у меня уже есть виртуальные хосты. Мне надо сделать эту фишку в рамках одного виртуального хоста.
2. в настройках виртуального хоста я уже прописал server name - один из доменов, и ServerAlias - все остальные домены
3. Сейчас за недостатком времени (как всегда бывает), побыстренькому своял пхп скриптик, который вытаскиваем домен и запрос, на основе этого отдает контент. если это картинка, посылает еще соотвествующие заголовки.
4.апач - 1.3.

однако проблема остается открытой.
Спасибо, если подскажите вариант решения проблемы!
 

Igor aka TiGR

Новичок
Я использую "Simple Dynamic Virtual Hosts Using mod_rewrite" (конечно, заметно его подправив), причём есть ещё и отдельно объявленные виртуальные хосты - всё работает без проблем.
 

clevel

Новичок
если не сложно, покажи как у тебя реализовано.
Заранее спасибо!
 

Igor aka TiGR

Новичок
Код:
<VirtualHost 127.0.0.1>
#  ServerName "dev"
#  DocumentRoot "/home/dev"
  ScriptAlias /cgi/ "/home/dev/cgi/"
  ScriptAlias /cgi-bin/ "/home/dev/cgi-bin/"
  ErrorLog "/home/error.log"

  RewriteEngine on
  RewriteMap lowercase int:tolower

  # allow CGIs to work
  RewriteCond %{REQUEST_URI} !^/cgi-bin/
  RewriteCond %{REQUEST_URI} !^/icons/

  # check the hostname is right so that the RewriteRule works
#  RewriteCond ${lowercase:%{SERVER_NAME}} ^(www\.)?[a-z-]+\.dev$

  # concatenate the virtual host name onto the start of the URI
  # the [C] means do the next rewrite on the result of this one
  RewriteRule ^(.+) ${lowercase:%{SERVER_NAME}}$1 [C]

  # now create the real file name
  RewriteRule ^([0-9a-z_-]+)/(.*)$ /home/$1/$2 [L]
  RewriteRule ^(www\.)?([a-z0-9_-]+)\.([0-9a-z_-]+)/(.*)$ /home/$3/$2/$4 [L]

</VirtualHost>
Т.е. у всех динамических доменов у меня общая зона - .dev. Они доступны в виде как http://dev/domain/ так и http://domain.dev/ . Просто мне так нужно.
 

clevel

Новичок
огромнейшее спасибо, чуть позже попробую эти правила :)
 
Сверху