mod_rewrite работает в файлах .htaccess, но не в apache2.conf - PullRequest
0 голосов
/ 27 ноября 2009

У меня есть следующее в файле .htaccess в качестве теста:

RewriteEngine on
RewriteRule ^(.*)$ /backend/$1

Это работает как ожидалось. Я смог заставить переписывать логи работая со следующими в apache2.conf:

<IfModule mod_proxy.c>
    RewriteLog "/tmp/REWRITE.log"
    RewriteLogLevel 9
</IfModule>

Файл журнала создан и регистрирует отладочную информацию, как и ожидалось. Однако когда я удаляю файл .htaccess, изменяю директиву apache2.conf следующим образом и перезапускаю apache, чтобы сделать аналогичный глобально, он не работает.

<IfModule mod_proxy.c>
    RewriteLog "/tmp/REWRITE.log"
    RewriteLogLevel 9
    RewriteEngine on
    RewriteRule ^(.*)$ /backend/$1
</IfModule>

Я использую Apache / 2.0.55 в Ubuntu.

Помощь!

Ответы [ 3 ]

0 голосов
/ 27 ноября 2009

Содержатся ли ваши директивы RewriteRule в определении конкретного сервера? У вас есть виртуальные серверы на работе?

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

0 голосов
/ 29 марта 2010

Вы пробовали это?

    RewriteEngine on
    RewriteRule ^(.*)$ /backend/$1

<IfModule mod_proxy.c>
    RewriteLog "/tmp/REWRITE.log"
    RewriteLogLevel 9

</IfModule>

Потому что таким образом я смог переписать, но журнал не работал, поэтому проблема в mod_proxy.c

0 голосов
/ 27 ноября 2009

Рассматривали ли вы включение RewriteEngine на до каких-либо других директив перезаписи?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...