Перенаправление Apache к https для основного автора

Это звучит мне, как будто сервер находится на остановленном завершении работы. Если завершение работы/перезапуск подвешивает Вас, иногда получают пустой экран на интерактивной сессии, но Вы можете все еще TS в него.

МЛАДШИЙ

3
задан 18 October 2012 в 22:41
3 ответа

Я наконец выяснил, как это делалось на одном из наших серверов (Ужасное предупреждение Взлома).

Мы в основном запрещаем .htaccess файлы в строке файла конфигурации для не-SSL (порт 80) хост. Это генерирует 500 ошибок, когда они поражают .htaccess файл.

Мы перенаправляем все 500 ошибок к хосту SSL, где .htaccess файлы позволяются. "Реальные" 500 сообщений об ошибках, по-видимому, перестанут работать на стороне SSL также, в то время как .htaccess имел отношение, перенаправления теперь функциональны на включенной стороне SSL вещей.

Да - довольно ужасный. Я не хочу копировать это, но я полагал, что проведу это.

1
ответ дан 3 December 2019 в 07:17

Я не думаю, что возможно автоматически перенаправить Запросы HTTP со Стандартной аутентификацией к определенному местоположению - по крайней мере, не с Apache httpd один.

Но можно использовать директиву SSLRequireSSL в блоке Местоположения, чтобы вынудить клиенты использовать HTTPS, иначе они получат ошибку 403.

1
ответ дан 3 December 2019 в 07:17
  • 1
    Есть ли какие-либо апачские модули или дополнения, которые могли бы выполнить это? –  shreddd 13 March 2010 в 21:17
  • 2
    Да, просто дополнение обязательный текст в виртуальной конфигурации хоста.:P –  David Rickman 2 May 2010 в 11:59

В файле .htaccess в каталоге, доступ к которому осуществляется с помощью базовой аутентификации, введите следующее:

SSLRequireSSL
ErrorDocument 403 /erreurs/403.php
ErrorDocument 401 /erreurs/401.php

Это перенаправит ваших посетителей, использующих http, на страницы с ошибками 401 или 403.

В на этой странице введите следующее:

<?php
$path = $SERVER['REQUEST_URI'];
if($_SERVER["HTTPS"] != "on")
{
header('HTTP/1.1 301 Moved Permanently');
header('Status: 301 Moved Permanently');
header('Cache-Control: max-age=31536000');
header('Content-Language: en');
header('Location: https://www.example.com/'.$path.'');
echo '<!DOCTYPE html><html lang="en"><head><meta charset="utf-8"/><title>301 Moved Permanently</title></head><body><h1>Moved Permanently</h1><p>The document has moved <a href="'.$path.'">here</a></p></body></html>';
}
else {
echo '<!DOCTYPE html><html lang="en"><head><meta charset="utf-8"/><title>Forbidden</title></head><body><h1>Forbidden</h1><p>Forbidden</p></body></html>';
} ?>

Базовая аутентификация будет перенаправлена ​​на HTTPS.

0
ответ дан 3 December 2019 в 07:17

Теги

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