Apache: как установить пользовательскую 401 ошибочную страницу и сохранить исходное поведение

Резюме (Обычно пропускаемые функции человека, выполняющего маленькую базу данных):

Выпуску R2 Express SQL 2008 недостает:

  • SQL Server Agent (для планирования заданий, включая репликацию SQL)

  • поддержка DBS> 10 ГБ

  • Услуги по интеграции

Существует много других различий, детализированных в отправленном Американском лосе URL.

SQL Express CAN быть полученным доступ из сети, но это не включено по умолчанию. Быстрый Google покажет как

4
задан 3 July 2012 в 20:55
2 ответа

Во-первых, когда я использовал

ErrorDocument 401 /pages/401

/ pages / 401, был динамическим контентом, генерируемым сервером. Когда я создал простой статический 401.html и установил

ErrorDocument 401 /401.html

, вся система начала работать правильно. Итак, решение: не используйте динамические страницы для отображения ошибки 401, используйте статический html.

3
ответ дан 3 December 2019 в 03:32

Поведение, которое вы описываете, является клиентской и не имеет ничего общего с Apache, как таковое.

Вот что на самом деле происходит:

  1. Браузер отправляет запрос
  2. Веб-сервер отвечает 401
  3. Браузер запрашивает у пользователя учетные данные
  4. Браузер повторно отправляет запрос с учетными данными

Если доступ предоставлен, Apache отвечает 200, если доступ не предоставлен, он возвращается к шагу 2 и продолжается. Это зависит от User-Agent (например, вашего браузера), сколько раз он будет пытаться. Ваш браузер, по-видимому, останавливается на 3 попытках. После этого он сохраняет результат в кеше и просто показывает страницу с ошибкой.

Браузеры часто кэшируют результаты этого типа операций, так что это нормально. Вы закрыли браузер перед повторной попыткой? Это должно очистить кешированный результат.

Если вы хотите точно увидеть, как Apache ведет себя «в чистом виде», используйте следующее:

Неаутентифицированный запрос:

curl -D - http://yourserver/page.html

Аутентифицированный * запрос:

curl -u user:pass -D - http://yourserver/page.html

Вы увидите заголовки в самом верху вывод о том, как Apache отвечает на запросы с проверкой подлинности и без проверки подлинности. Вы всегда должны видеть 401 для unauth и 200 для auth. Если это не так, значит, он либо неправильно настроен, либо происходит что-то еще.


* curl может выполнить аутентификацию Kerberos, передав - согласовать , но я никогда не сделали это и у вас нет подходящей тестовой среды, чтобы попробовать в ней. Прочтите руководство curl (1) для получения дополнительной информации.

curl -u user:pass -D - http://yourserver/page.html

Вы увидите заголовки в самом верху вывода о том, как Apache отвечает на аутентифицированные и не аутентифицированные запросы. Вы всегда должны видеть 401 для unauth и 200 для auth. Если это не так, значит, он либо неправильно настроен, либо происходит что-то еще.


* curl может выполнить аутентификацию Kerberos, передав - согласовать , но я никогда не сделали это и у вас нет подходящей тестовой среды, чтобы попробовать в ней. Прочтите руководство curl (1) для получения дополнительной информации.

curl -u user:pass -D - http://yourserver/page.html

Вы увидите заголовки в самом верху вывода о том, как Apache отвечает на аутентифицированные и не аутентифицированные запросы. Вы всегда должны видеть 401 для unauth и 200 для auth. Если это не так, то либо он настроен неправильно, либо происходит что-то еще.


* curl может выполнить аутентификацию Kerberos, передав - согласовать , но я никогда не сделали это и у вас нет подходящей тестовой среды, чтобы попробовать в ней. Прочтите руководство curl (1) для получения дополнительной информации.

1
ответ дан 3 December 2019 в 03:32

Теги

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