Снова mod_rewrite

tank

Новичок
Снова mod_rewrite

Доброго дня, господа!

Приспичило поработать с сабжем, никак не могу настроить локально. Что делал.
в httpd.conf раскоментил
LoadModule php4_module c:/php/sapi/php4apache.dll
AddModule mod_rewrite.c

добавил
RewriteLogLevel 3
RewriteLog "rewrite.log"
<Directory />
Options Indexes Includes
AllowOverride All
Allow from All
</Directory>

в файл .htaccess добавил
RewriteEngine On
RewriteRule .* phpinfo.php

Попробовал. Болт. Ошибка 404.

в логах модуля:
127.0.0.30 - - [26/Jun/2007:10:27:29 +0600] [site/sid#904090][rid#3eac298/initial] (3) [per-dir c:/internet/site/data/] add path-info postfix: c:/internet/site/data -> c:/internet/site/data/
127.0.0.30 - - [26/Jun/2007:10:27:29 +0600] [site/sid#904090][rid#3eac298/initial] (3) [per-dir c:/internet/site/data/] strip per-dir prefix: c:/internet/site/data/ ->
127.0.0.30 - - [26/Jun/2007:10:27:29 +0600] [site/sid#904090][rid#3eac298/initial] (3) [per-dir c:/internet/site/data/] applying pattern '.*' to uri ''
127.0.0.30 - - [26/Jun/2007:10:27:29 +0600] [site/sid#904090][rid#3eac298/initial] (2) [per-dir c:/internet/site/data/] rewrite -> phpinfo.php
127.0.0.30 - - [26/Jun/2007:10:27:29 +0600] [site/sid#904090][rid#3eac298/initial] (3) [per-dir c:/internet/site/data/] add per-dir prefix: phpinfo.php -> c:/internet/site/data/phpinfo.php
127.0.0.30 - - [26/Jun/2007:10:27:29 +0600] [site/sid#904090][rid#3eac298/initial] (3) [per-dir c:/internet/site/data/] add per-dir prefix: c:/internet/site/data/phpinfo.php -> c:/internet/site/data/c:/internet/site/data/phpinfo.php

Т.е. если правильно понимаю, модуль подцепился, и работает, но скорее всего криво настроен апач, и не хотит обрабатывать нормально запрос, господа гуру, подскажите где что посмотреть.
Спасибо.
ЗЫ Apache 1.3.24
 

tank

Новичок
RewriteEngine On
RewriteRule .* /phpinfo.php

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

tank

Новичок
to MiksIr
То же самое :(((

-~{}~ 26.06.07 16:23:

Почему то простешие правила не работают... Взял файлик .htaccess с рабочего сайта, там все прекрасно отрабатывает, на локалке никак не хотит, мож модуль как-нить поменять или еще чего?
 

MiksIr

miksir@home:~$
Гм...
а попробуй так:
RewriteRule ^.*$ /phpinfo.php
и покажи реврайт лог
 

tank

Новичок
Опять все висит, загрузка компа 100%
Вот чего есть в логах модуля
127.0.0.30 - - [26/Jun/2007:16:44:41 +0600] [site/sid#904090][rid#2bac628/initial] (1) [per-dir c:/internet/site/data/] internal redirect with /phpinfo.php [INTERNAL REDIRECT]
127.0.0.30 - - [26/Jun/2007:16:44:41 +0600] [site/sid#904090][rid#2bad988/initial/redir#1] (3) [per-dir c:/internet/site/data/] strip per-dir prefix: c:/internet/site/data/phpinfo.php -> phpinfo.php
127.0.0.30 - - [26/Jun/2007:16:44:41 +0600] [site/sid#904090][rid#2bad988/initial/redir#1] (3) [per-dir c:/internet/site/data/] applying pattern '^.*$' to uri 'phpinfo.php'
127.0.0.30 - - [26/Jun/2007:16:44:41 +0600] [site/sid#904090][rid#2bad988/initial/redir#1] (2) [per-dir c:/internet/site/data/] rewrite phpinfo.php -> /phpinfo.php
127.0.0.30 - - [26/Jun/2007:16:44:41 +0600] [site/sid#904090][rid#2bad988/initial/redir#1] (1) [per-dir c:/internet/site/data/] internal redirect with /phpinfo.php [INTERNAL REDIRECT]
 

MiksIr

miksir@home:~$
Попробуй
RewriteRule ^.*$ /phpinfo.php [L]
Если не поможет, то тогда так
RewriteCond %{REQUEST_URI} !^/phpinfo.php$
RewriteRule ^.*$ /phpinfo.php
 

tank

Новичок
УРАААААААААААА!!!!
Вот так
RewriteCond %{REQUEST_URI} !^/phpinfo.php$
RewriteRule ^.*$ /phpinfo.php

Заработало!!!
А почему ж другие правила не работают?

ЗЫ Просьба сильно не пинать, первый раз с этим модулем столкнулся...
 

MiksIr

miksir@home:~$
Ну, надо понимать, что такое редирект. Их может быть два вида - внешний (это выдача Location) и внутренний. После реврайта URI происходит в данном случае внутренний запрос, который проходит всю логику апача с начала до конца - ну и попадает снова на правило реврайта, совпадает с ним, и делает снова внутрениий редирект - вот и цикл.
Соответственно, избежать это можно - проверить, какой запрос мы реврайтим - внутренний или внешний.. но что-то не получилось ;) второй путь - проверить что мы реврайтим (мы же знаем, что нам /phpinfo.php не надо реврайтить в /phpinfo.php). Есть и третий путь - разнести это все по папкам - если бы на .htaccess лежал бы в папке /blabla/ а phpinfo.php в корне - все бы работало (так как запрос, пришедший в корень, больше не реврайтился).
 

tank

Новичок
Спасибо большое! Надо покурить доки, иначе никак ;)

-~{}~ 18.07.07 13:28:

Докурился...

своял такое правило:
RewriteRule ^([^.]+)$ index.php
все запросы перенаправляет на index.php
(причем RewriteRule ^([^.]+)$ - [L] - не работает)

добавил RewriteRule ^forum/(.+)$ - [L], все равно все запросы напрявляет на index.php
В чем может быть дело ,подскажите, уже башка пухнет :(
 

MiksIr

miksir@home:~$
а что такое "-"? что-то не помню такого синтаксиса.
лучше опиши, что нужно - какая структура и куда чего редиректить
 

Mr_Max

Первый класс. Зимние каникулы ^_^
Команда форума
tank
Попробуйте
RewriteEngine Off
в .htaccess в папке forum
 

tank

Новичок
Mr_Max

Так уже пробовал, работает, но мне не совсем подходит..
 

tank

Новичок
Mr_Max
А что объяснять то?

Все запросы редиректяться на корневой index.php, но есть папка forum, в ней (возможно это кого то удивит :)) лежит форум.
так вот при правилах описанных выше по адресу mysite/forum/
делается редирект на корневой index.php, а нужно, чтоб не было редиректа.
 

HraKK

Мудак
Команда форума
Или как вариант добавте .htaccess в каталок форума с:
RewriteEngine off
 
Сверху