Apache: Где изучить журналы перенаправления?

10

Я усложнил RewriteCondи RewriteRuleв одной машине. И в соответствии с этими правилами некоторые запросы будут перенаправлены на другую машину.

Так есть ли какой-нибудь журнал Apache, который ясно показывает, как происходит перенаправление? Потому что перенаправление происходит так, как я не ожидаю.

Гравитон
источник

Ответы:

9

Для непосвященных, вот как вы должны написать свой * .conf файл:

  NameVirtualHost *:80
  <VirtualHost *:80 >
    ServerName gw.myserver.net
    DocumentRoot "C:\Program Files\MyCompany\myserver\Web"
    DirectoryIndex index.html index.php
    RewriteLog "logs\rewritelog.txt"
    RewriteLogLevel 3
    <Directory  "C:\Program Files\ MyCompany\ myserver\Web">
       AddDefaultCharset UTF-8
       Order Deny,Allow
       Allow from all

       RewriteEngine on
       RewriteBase /
       RewriteCond %{HTTP_HOST}   ^gw\. myserver\.net$
       RewriteRule !^(login|index.php)  http://pmmenu. myserver\.net%{REQUEST_URI}$1 [L,R=301]
       # we check if the .html version is here (caching)
       RewriteRule ^$ index.html [QSA]
       RewriteRule ^([^.]+)$ $1.html [QSA]
       RewriteCond %{REQUEST_FILENAME} !-f

       # no, so we redirect to our front web controller
       RewriteRule ^(.*)$ index.php [QSA,L]
    </Directory>
  </VirtualHost>
Гравитон
источник
2
Хороший ответ - непосвященный, имейте в виду, что уровни журналов выше 2 на производственном сервере могут иметь существенные последствия для производительности.
Кори
7
Для более новых версий Apache (как минимум 2.4 и новее) RewriteLog / RewriteLogLevel больше не работает. Он был заменен директивой LogLevel: httpd.apache.org/docs/2.4/mod/mod_rewrite.html#logging
ronneseth
1

Вы можете настроить файл журнала специально для Rewriteобработки с помощью RewriteLogдирективы. Количество регистрации может быть выбрано с помощью RewriteLogLevel.

Дэвид Шмитт
источник