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 на виробничому сервері можуть мати суттєві наслідки для продуктивності.
cori

7
Для новіших версій Apache (принаймні 2.4 та новіших) RewriteLog / RewriteLogLevel більше не працює. Його було замінено директивою LogLevel
ronneseth


1

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

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.