ПРОЕКТЫ 


  АРХИВ 


Apache-Talk @lexa.ru 

Inet-Admins @info.east.ru 

Filmscanners @halftone.co.uk 

Security-alerts @yandex-team.ru 

nginx-ru @sysoev.ru 

  СТАТЬИ 


  ПЕРСОНАЛЬНОЕ 


  ПРОГРАММЫ 



ПИШИТЕ
ПИСЬМА














     АРХИВ :: Apache-Talk
Apache-Talk mailing list archive (apache-talk@lists.lexa.ru)

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [apache-talk] виртуальные серверы через mod_rewrite




Alexey Vlasov wrote:
Я не хочу сейчас переделывать  правила, по этому раскажу, как сделал бы я:
RewriteCond %{HTTP_HOST} ^(.+)$
RewriteRule ^/(.+)$ /%1/$1 [P,L]

Увы, но ваш пример не работает совсем.
А именно всегда отдается файл из public_html.
Покрайней мере у меня :


#TST
RewriteCond  %{HTTP_HOST}  ^(.+\.working.server)$
RewriteRule  ^/(.+)$   /%1/$1  [P,L]


me:~/$ telnet working.server 80

Trying 89.108.68.10...
Connected to vsem.ru.
Escape character is '^]'.
GET http://lalala.working.server/opa/popa/trampampam HTTP/1.1
host: lalala.working.server

HTTP/1.1 404 Not Found
Date: Mon, 09 Oct 2006 08:35:00 GMT
Server: Apache/1.3.33 (Unix) mod_backhand/1.2.2 mod_accel/1.0.31
Content-Type: text/html; charset=iso-8859-1
Transfer-Encoding: chunked

124
<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 2.0//EN">
<HTML><HEAD>
<TITLE>404 Not Found</TITLE>
</HEAD><BODY>
<H1>Not Found</H1>
The requested URL /lalala.working.server/opa/popa/trampampam was not found on this server.<P>
<HR>
<ADDRESS>Apache/1.3.33 Server at a2 Port 80</ADDRESS>
</BODY></HTML>
^D

Тоесть таки работает.

Может быть в вашей конфигурации запрос попадает не в тот виртуал хост ?
Я использую апач в котором есть вот такой виртхост:

<VirtualHost *>
   ServerName working.server
   ServerAlias *

   #Here rewrite rules.

</VirtualHost>

Идея в том, что в этот виртхост попадают все запросы, для которых виртхост не был найден ранее. Сдесь используется хак. Апач таблицу виртхостов создаёт по порядку нахождения их в конфиге. И cоответственно проверяет запрос на принаджлежность виртхосту он тоже по порядку.
И  виртхост с ServerAlias * должен стоять последним.

PS. Речь идёт о apache13 - для второго апача не проверял.

--
Ivan B. Serezhkin



 




Copyright © Lexa Software, 1996-2009.