머리말
첫째 : 단순히 포트 80-> 포트 443 다시 쓰기로 해결 되지 않습니다 . 거의 모든 이전 질문, 메일 스레드, 포럼 스레드 등에서 이것이 첫 번째 무지한 응답이며 여러 번 앵무새되었음을 발견했습니다.
둘째 : 예, 같은 포트에서 HTTP 및 HTTPS 트래픽을 제공 할 수 없습니다. 그렇지 않습니다.
대본:
포트 곱셈을 통해 여러 사이트를 호스팅하는 Apache 서버. 포트 80은 공개 사이트를 제공합니다. 포트 443은 해당 사이트의 보안 버전을 제공합니다.
포트 7443, 8443 및 9443은 각각 별도의 SSL 보안 사이트를 제공합니다.
사용자가 URL을 잘못 입력하거나 유효하지 않은 링크 (예 : http : //hostname.tld : 7443 )가 제공되면 다음과 같은 우스운 페이지가 표시됩니다.
서버 대신 https : //hostname.tld : 7443으로 리디렉션합니다 .
제 질문은 Zeus의 똥구멍 이름으로 어떻게 Apache의 동작이 나이 오류 메시지를 수정하여 사용자를 자동으로 리디렉션 할 수 있습니까?
아파치는 HTTPS에 대해 구성되었지만 HTTP가 아닌 요청 (오류 메시지를 표시하기 위해)을 제공하고 있습니다. 기본적으로 리디렉션을 수행하는 것만으로도 엄청나게 바보처럼 보이지만 동의하지 않더라도 왜 그들이 행동을했는지 이해할 수 있습니다. 내 질문은 : 당신이 그것을 바꿀 수 있습니까? 그들은 어딘가에서 오류를 처리하고 있으며 Apache가 구성 풍요의 뿔이기 때문에이 동작을 처리 할 수있는 지시어가 있다고 생각하지만 지금까지 몇 시간 동안 그것을 찾을 수 없었습니다.
최신 정보:
나는 다음을 포함하여 다양한 것들을 시도했다.
사용
ErrorDocument 400
지시하는 것은 CGI 그냥 보내 PHP 스크립트에 도착합니다Status 301
및Location
헤더. 빈 페이지가 나타납니다.ErrorDocument 400 https://hostname.tld:7443
단순히 사용 하면 해당 링크가 페이지에 표시됩니다.mod_rewrite
사이트 전체를 지시하는 총괄 진술을 포함하여 I 또는 Google 의 거의 모든 조합을 사용할 수 있습니다. 이것들 은 작동 하지 않습니다 . 말 그대로 그들은 아무것도하지 않습니다. 아파치가 다시 쓰기 지시문을 처리하기 전에 위의 오류를 겪고 있다고 생각합니다.
사용자 지정 포트 사용으로 인해 포트 기반 리디렉션을 사용할 수 없습니다. http / https 불일치로 인해 스크립트 기반 리디렉션이 제공되지 않으므로 스크립트 기반 리디렉션을 사용할 수 없습니다. 나는 이것을 거의 버그 나 의도하지 않은 행동으로 초안하려고하지만, 누군가가 매우 맞춤형 오류 메시지를 넣을 것을 미리 알고 있었기 때문에 그들은 당신이 아마도 그들이 이미 제공하고있는 URL ?