Apache: où examiner les journaux de redirection?

10

J'ai compliqué RewriteCondet RewriteRuledans une seule machine. Et selon ces règles, certaines des demandes seront redirigées vers une autre machine.

Y a-t-il donc un journal Apache qui montre clairement comment la redirection a lieu? Parce que la redirection se déroule d'une manière que je n'anticipe pas.

Graviton
la source

Réponses:

9

Pour les non-initiés, voici comment écrire votre fichier * .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>
Graviton
la source
2
Bonne réponse - non initié, veuillez garder à l'esprit que les niveaux de journal supérieurs à 2 sur un serveur de production peuvent avoir des répercussions importantes sur les performances.
cori
7
Pour les versions Apache plus récentes (au moins 2.4 et plus récentes), RewriteLog / RewriteLogLevel ne fonctionne plus. Il a été remplacé par la directive LogLevel: httpd.apache.org/docs/2.4/mod/mod_rewrite.html#logging
ronneseth
1

Vous pouvez configurer un fichier journal spécifiquement pour le Rewritetraitement avec la RewriteLogdirective. La quantité de journalisation peut être sélectionnée avec RewriteLogLevel.

David Schmitt
la source