Как я диагностирую, почему мои переписывать правила не применяются апачем?

Если вы знаете количество ожидаемых элементов, вы можете проверить каждую строку

f=open(filename,'r')
for line in f:
    line=line.split("`")
    if line!=numElements:
        raise Exception("Bad file")

Если вы знаете, что разделитель был случайно вставлен, вы также можете попытаться восстановить его вместо выдачи исключения. Возможно, что-то вроде:

line="`".join(line).replace(wrongDelimiter,"`").split("`")

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

7
задан Myron Marston 19 October 2008 в 00:51
поделиться

4 ответа

Попытка ответить на вопрос: Для отладки операции Apache, можно скорректировать LogLevel к более низкому уровню (возможно, debug). Но даже если Вы помещаете debug при отключении Журнала для рассматриваемого модуля, Вы не получаете сообщений от него. Например, значение по умолчанию [RequestLogLevel][2] 0, например, модуль не пишет сообщений. Я вижу Вас setted, который это к 3, но как RoBorg сказало, изменяют его на 9 это, возможно, слишком низко для Вашего случая.

Попытка к sove проблема: Попытайтесь изменить способ, которым Вы переписываете имя хоста с помощью обратной формы - смотрят, если имя хоста - то, что Вы хотите и, в противном случае изменяете его на имя хоста, которое Вы хотите. Как установленный в Руководстве по Перезаписи URL - Apache Сервер HTTP на Сайте Apache:

Канонические имена хостов

Описание: цель этого правила состоит в том, чтобы вызвать использование конкретного имени хоста, в предпочтении к другим именам хостов, которые могут использоваться для достижения того же сайта. Например, если Вы хотите вызвать использование www.example.com вместо example.com, Вы могли бы использовать вариант следующего рецепта. Решение:

# To force the use of 
RewriteEngine On
RewriteCond %{HTTP_HOST}   !^www\.example\.com [NC]
RewriteCond %{HTTP_HOST}   !^$
RewriteRule ^/(.*)         http://www.example.com/$1 [L,R]

В их примере они изменяются от example.com кому: www.example.com но Вы получили идею. Просто скорректируйте его для своего случая.

4
ответ дан 7 December 2019 в 12:26
поделиться

    RewriteEngine on
    RewriteCond %{HTTP_HOST} ^www.domain.com$ [NC]
    RewriteRule ^(.*)$ "http\:\/\/domain\.com\/$1" [R=301,L]

</IfModule>

Имел ту же проблему с моим сервером, но это работало

1
ответ дан 7 December 2019 в 12:26
поделиться

В который контекст помещаются эти правила? Вы могли бы размещать их под другим виртуальным хостом, например. Попытайтесь поместить их вне любого контейнера, если у Вас есть только один домен для тестирования.

В любом случае существует альтернатива для достижения 'нет', состоит в использовании двух виртуальных хостов, один для www и другого для 'нет'. www каждый перенаправляет к другому:

<VirtualHost *:80>
    ServerName www.domain.com
    Redirect permanent / http://domain.com
</VirtualHost>


<VirtualHost *:80>
    ServerName domain.com
    #The rest of the configuration (proxying, etc.)
</VirtualHost>
0
ответ дан 7 December 2019 в 12:26
поделиться

Попытайтесь увеличить регистрирующийся уровень до 9 (максимум).
Убедитесь, что апач имеет надлежащие права на файл журнала (хотя, если он создал его, кажется вероятным, что он мог бы записать в него также).
Попытка другое переписывает правило, без условия, например RewriteRule .* www.google.com [RL]

0
ответ дан 7 December 2019 в 12:26
поделиться
Другие вопросы по тегам:

Похожие вопросы: