Предисловие
Во-первых: просто Port 80 -> Port 443 Rewrite НЕ БУДЕТ исправить это. Почти в каждом предыдущем вопросе, почтовой ветке, ветке форума и т. Д. Я обнаружил, что это был первый невежественный ответ, который несколько раз подвергался попугаям.
Во-вторых: Да, я знаю, что вы не можете обслуживать трафик HTTP и HTTPS на одном и том же порту. Это не то.
Сценарий:
Apache Server, на котором размещены несколько сайтов с помощью умножения портов. Порт 80 обслуживает публичный сайт. Порт 443 обслуживает безопасную версию этого сайта.
Порты 7443, 8443 и 9443 каждый обслуживают отдельные сайты, защищенные SSL.
Если пользователь неправильно набирает URL-адрес или получает недействительную ссылку, например, http: //hostname.tld: 7443 , ему предоставляется следующая нелепая страница:
Вместо сервера просто перенаправьте их на https: //hostname.tld: 7443 .
Мой вопрос заключается в том, как во имя жопы Зевса вы можете изменить поведение Apache или это сообщение об ошибке для автоматического перенаправления пользователя?
Apache, очевидно, обслуживает не-https запрос (для отображения этого сообщения об ошибке), даже если он настроен для HTTPS. Мне кажется удивительно глупым не просто выполнять перенаправление по умолчанию, но я могу понять, почему они пошли с тем же поведением, что и они, даже если я с этим не согласен. Итак, мой вопрос: вы можете изменить это? Они обрабатывают ошибку КУДА-ТО, и, учитывая, что Apache является конфигурацией изобилия, которая есть, понятно, что где-то есть какая-то директива, чтобы справиться с этим поведением, но я до сих пор не смог найти ее за несколько часов работы.
Обновить:
Я пытался различные вещи, в том числе:
используя
ErrorDocument 400
директивы , чтобы получить к CGI и PHP скрипт , который просто отправитьStatus 301
иLocation
заголовки. Это приводит к пустой странице. ИспользованиеErrorDocument 400 https://hostname.tld:7443
просто приводит к тому, что эта ссылка отображается на странице.mod_rewrite
Можно использовать почти каждую комбинацию I или Google, включая общие заявления, которые полностью управляют сайтом; это никогда не работает. Буквально они ничего не делают. Я предполагаю, что Apache пытается выполнить описанную выше ошибку еще до того, как попытается обработать директивы перезаписи.
Я не могу использовать перенаправления на основе портов из-за использования пользовательских портов. Я не могу использовать перенаправления на основе сценариев, потому что они никогда не обслуживаются из-за несоответствия http / https. Я почти готов связать это с ошибкой или непреднамеренным поведением, но у кого-то была заранее продуманная идея поместить туда свое собственное сообщение об ошибке, они не удосужились подумать, что, возможно, вы захотите просто перенести на URL они уже предоставляют ?