The OpenNET Project / Index page

[ новости /+++ | форум | теги | ]

форумы  помощь  поиск  регистрация  майллист  ВХОД  слежка  RSS
"rewrite engine"
Вариант для распечатки Архивированная нить - только для чтения! 
Пред. тема | След. тема 
Форумы WEB технологии (Public)
Изначальное сообщение [Проследить за развитием треда]

"rewrite engine"
Сообщение от Максим emailИскать по авторуВ закладки on 15-Фев-04, 15:44  (MSK)
Подскажите, пожалуйста, решение данной проблемы.
Есть домен www.test.ru. Его внутренний путь /home/test/.
Нужно при помощи rewrite engine сделать  так, чтобы при запросе
- first.test.ru данные брались из /home/test/users/first/
- second.test.ru данные брались из /home/test/users/second/
- third.test.ru данные брались из /home/test/users/third/
и т.д., в зависимости от субдомена.

Как это сделать?

  Рекомендовать в FAQ | Cообщить модератору | Наверх

 Оглавление

Индекс форумов | Темы | Пред. тема | След. тема
Сообщения по теме

1. "rewrite engine"
Сообщение от dev emailИскать по авторуВ закладки on 15-Фев-04, 16:07  (MSK)
>Подскажите, пожалуйста, решение данной проблемы.
>Есть домен www.test.ru. Его внутренний путь /home/test/.
>Нужно при помощи rewrite engine сделать  так, чтобы при запросе
> - first.test.ru данные брались из /home/test/users/first/
> - second.test.ru данные брались из /home/test/users/second/
> - third.test.ru данные брались из /home/test/users/third/
>и т.д., в зависимости от субдомена.
>
>Как это сделать?

1. Надо чтоб named знал, что все поддомены имеют один IP.
2. В доке на mod_rewrite есть конкретно этот пример:
http://httpd.apache.org/docs/misc/rewriteguide.html
/Virtual User Hosts

  Рекомендовать в FAQ | Cообщить модератору | Наверх

2. "rewrite engine"
Сообщение от Максим emailИскать по авторуВ закладки on 15-Фев-04, 16:19  (MSK)
>1. Надо чтоб named знал, что все поддомены имеют один IP.
Знает.

>2. В доке на mod_rewrite есть конкретно этот пример:
>http://httpd.apache.org/docs/misc/rewriteguide.html
>/Virtual User Hosts

Вот виртуалхост:

<VirtualHost www.poo.ru:80>
   DocumentRoot "/home/design/poo"
   ServerName poo.ru
   ServerAlias www.poo.ru poo.ru *.poo.ru
   RewriteEngine on
   RewriteCond   %{HTTP_HOST}                 ^www\.[^.]+\.poo\.ru$
   RewriteRule   ^(.+)                        %{HTTP_HOST}$1          [C]
   RewriteRule   ^www\.([^.]+)\.poo\.ru(.*) /home/design/poo/users/$1$2
</VirtualHost>

При запросе www.test.poo.ru берет индекс из /home/design/poo/ а не из /home/design/poo/users/test/

В чем ошибся?

  Рекомендовать в FAQ | Cообщить модератору | Наверх

3. "rewrite engine"
Сообщение от dev emailИскать по авторуВ закладки on 15-Фев-04, 16:45  (MSK)
><VirtualHost www.poo.ru:80>

1. М.б. <VirtualHost *> ?
2. Включай
  RewriteLog      /var/log/apache/rewrite.log
  RewriteLogLevel 9
и смотри.

(только что проверил - заработало сразу).

  Рекомендовать в FAQ | Cообщить модератору | Наверх

4. "rewrite engine"
Сообщение от Максим emailИскать по авторуВ закладки on 15-Фев-04, 18:20  (MSK)
>><VirtualHost www.poo.ru:80>
>
>1. М.б. <VirtualHost *> ?

А если у меня не один домен в конфигах, сервер поймет такую строчку
применительно только к poo.ru ?

  Рекомендовать в FAQ | Cообщить модератору | Наверх

7. "rewrite engine"
Сообщение от dev emailИскать по авторуВ закладки on 15-Фев-04, 23:16  (MSK)
>>><VirtualHost www.poo.ru:80>
>>
>>1. М.б. <VirtualHost *> ?
>
>А если у меня не один домен в конфигах, сервер поймет такую
>строчку
>применительно только к poo.ru ?

Проблемы м.б. только если у тебя помимо name-based виртуальных серверов еще и виртуальные сервера на разных IP сидят.

  Рекомендовать в FAQ | Cообщить модератору | Наверх

5. "rewrite engine"
Сообщение от Максим emailИскать по авторуВ закладки on 15-Фев-04, 18:41  (MSK)
>><VirtualHost www.poo.ru:80>
>
>1. М.б. <VirtualHost *> ?
>2. Включай
>  RewriteLog      /var/log/apache/rewrite.log
>  RewriteLogLevel 9
>и смотри.
>
>(только что проверил - заработало сразу).


Вот что в логах:

[www.test.poo.ru/sid#81d4a78][rid#9738f90/subreq] (2) init rewrite engine with requested uri /index.php
213.252.112.151 - - [15/жЕЧ/2004:18:38:05 +0300] [www.test.poo.ru/sid#81d4a78][rid#9738f90/subreq] (3) applying pattern '^(.+)' to uri '/index.php'
213.252.112.151 - - [15/жЕЧ/2004:18:38:05 +0300] [www.test.poo.ru/sid#81d4a78][rid#9738f90/subreq] (4) RewriteCond: input='%(HTTP_HOST)' pattern='^www\.[^.]+\.poo\.ru$' => not-matched
213.252.112.151 - - [15/жЕЧ/2004:18:38:05 +0300] [www.test.poo.ru/sid#81d4a78][rid#9738f90/subreq] (1) pass through /index.php
213.252.112.151 - - [15/жЕЧ/2004:18:38:05 +0300]

  Рекомендовать в FAQ | Cообщить модератору | Наверх

6. "rewrite engine"
Сообщение от dev emailИскать по авторуВ закладки on 15-Фев-04, 23:14  (MSK)
>213.252.112.151 - - [15/жЕЧ/2004:18:38:05 +0300] [www.test.poo.ru/sid#81d4a78][rid#9738f90/subreq] (4) RewriteCond: input='%(HTTP_HOST)' pattern='^www\.[^.]+\.poo\.ru$' => not-matched

Вот в этой строчке уже ошибка. Должно быть
... input='www.test.poo.ru' ...
Ты случаем в строчке
RewriteCond  %{HTTP_HOST}  ^www\.[^.]+\.poo\.ru$
круглые скобки вместо фигурных не написал?

  Рекомендовать в FAQ | Cообщить модератору | Наверх

8. "rewrite engine"
Сообщение от GliNT emailИскать по авторуВ закладки on 24-Фев-04, 18:52  (MSK)
Строчку
RewriteRule   ^www\.([^.]+)\.poo\.ru(.*) /home/design/poo/users/$1$2

mod_rewrite интерпретирует не так, как ты ожидаешь.
Судя по всему, правила regexp он понимает всего лишь БАЗОВЫЕ, т.е. [^.] не проканает.

  Рекомендовать в FAQ | Cообщить модератору | Наверх


Удалить

Индекс форумов | Темы | Пред. тема | След. тема
Пожалуйста, прежде чем написать сообщение, ознакомьтесь с данными рекомендациями.




Партнёры:
PostgresPro
Inferno Solutions
Hosting by Hoster.ru
Хостинг:

Закладки на сайте
Проследить за страницей
Created 1996-2025 by Maxim Chirkov
Добавить, Поддержать, Вебмастеру