mod_rewrite не работает, лог пустой

AlexVN

Новичок
mod_rewrite не работает, лог пустой

Попытка настроить mod_rewrite провалилась. Правила не выполняются, лог пуст.

Симтомы: при любом значении RewriteLogLevel и RewriteLog файл с логом создается, лочится системой, но он пуст. error логи апача ошибок не содержат.
Пробовал правила:
RewriteRule ^/$ /phpinfo.php
RewriteRule .* /phpinfo.php
Безрезультатно.
Пробовал с использованием .htacces - аналогично...

Apache version: 2.0.53
Апач запускается с файлом apache.conf:
Include "C:/amp/Apache 2.0.53/conf/httpd.conf"
Include D:/amp_data/servers/common.conf
Listen 8081

в httpd.conf
LoadModule rewrite_module modules/mod_rewrite.so

в common.conf
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteLogLevel 1
RewriteLog D:/amp_data/servers/var/rewrite.log
RewriteRule ^/$ /phpinfo.php
</IfModule>

<VirtualHost *>
ServerAdmin root@localhost
DocumentRoot D:/amp_data/vhosts/lh/htdocs
ServerName lh
</VirtualHost>

<Directory "D:/amp_data/vhosts/lh/htdocs">
AllowOverride All
Options Indexes SymLinksIfOwnerMatch IncludesNoExec
<Limit GET POST OPTIONS PROPFIND>
Order allow,deny
Allow from all
</Limit>
<LimitExcept GET POST OPTIONS PROPFIND>
Order deny,allow
Deny from all
</LimitExcept>
</Directory>

Есть идеи?

Спасибо.

-~{}~ 27.01.06 00:51:

Соответственно, обращение http://127.0.0.1:8081/ не приводит к перенаправлению на http://127.0.0.1:8081/phpinfo.php
 

Dagdamor

Новичок
Возможно, я сейчас скажу ерунду, но...
Если в конце правила нет директивы [L], то после подмены запроса все правила начинают проверяться по новой. У тебя просто получается бесконечный цикл. Попробуй добавить перед вторым правилом

RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
 

AlexVN

Новичок
Правила тестировались вместе и по отдельности.

2white phoenix:
если запрос GET / HTTP/1.1, то перенаправить на /phpinfo.php

2Dagdamor:
не работают следующие комбинации:
* RewriteRule ^/$ /phpinfo.php [L]
* RewriteRule .* /phpinfo.php [L]
* RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule .* /phpinfo.php
* RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule .* /phpinfo.php [L]

такие вот пироги....

-~{}~ 27.01.06 10:06:

Короче исследования показали, что mod_rewrite работает при отсутствии директивы VirtualHost. Т.е. если отключить их, то log файл пишется и правила выполняются. Если VirtualHost добавить, то лог не пишется, правила не выполняются... Какая связь?

-~{}~ 27.01.06 10:11:

Похоже, что все разрешилось... Надо RewriteEngine On
ставить внутри определения виртуального хоста
 

white phoenix

Новичок
AlexVN
Это был риторический вопрос.
> Похоже, что все разрешилось... Надо RewriteEngine On
Так ты не проверил работоспособность mod_rewrite? :)
 
Сверху