序文
まず、単純なポート80->ポート443リライトはこれを修正しません。以前のほとんどすべての質問、メールスレッド、フォーラムスレッドなどで、これが最初の無知な応答であり、何度もオウムされたことがわかりました。
第二に:はい、同じポートでHTTPトラフィックとHTTPSトラフィックを処理することはできません。 これはそうではありません。
シナリオ:
ポート乗算を介して複数のサイトをホストするApacheサーバー。ポート80は公開サイトとして機能します。ポート443は、そのサイトの安全なバージョンを提供します。
ポート7443、8443、および9443はそれぞれ、SSLで保護された個別のサイトに対応します。
ユーザーがURLを誤って入力した場合、または無効なリンク(http://hostname.tld:7443など)が表示された場合、次のようなばかげたページが表示されます。
サーバーの代わりに、それらをhttps://hostname.tld:7443にリダイレクトするだけです。
私の質問は、Zeusの尻の名の下に、Apacheの動作またはこのエラーメッセージをどのように変更して、ユーザーを自動的にリダイレクトできるかということです。
Apacheは、HTTPS用に構成されていても、明らかに(そのエラーメッセージを表示するために)非httpsリクエストを処理しています。デフォルトでリダイレクトを実行するだけでなく、私には非常に馬鹿げているように見えますが、同意しなくても、なぜ彼らがそうした動作を行ったのか理解できます。だから私の質問です:それを変更できますか?彼らはエラーSOMEWHEREを処理しており、Apacheが実際の構成の宝庫なので、この動作を処理するディレクティブがどこかにあるのは当然のことですが、今のところ数時間いじってみることで見つけることができませんでした。
更新:
私は次のようなさまざまなことを試みました:
ErrorDocument 400
ディレクティブを使用してStatus 301
、Location
ヘッダーとヘッダーを送信するだけのCGIおよびPHPスクリプトを取得します。これにより、空白のページになります。ErrorDocument 400 https://hostname.tld:7443
単に使用すると、そのリンクがページに表示されます。mod_rewrite
私またはGoogleのほとんどすべての組み合わせを使用すると、サイト全体を指示する包括的な声明を含め、思いつく可能性があります。これらは機能しません。文字通り、彼らは何もしません。Apacheが書き換えディレクティブの処理を試みる前に、上記のエラーを引き起こしているのではないかと思います。
カスタムポートを使用しているため、ポートベースのリダイレクトを使用できません。スクリプトベースのリダイレクトは、http / httpsの不一致のために配信されないため、使用できません。私はこれをバグや意図しない動作にまで踏み込んでいくつもりですが、誰かが非常にカスタムエラーメッセージをそこに入れることを予見していました。彼らがすでに提供している URL は?