ユーザーのログイン資格情報が安全な方法で送信されるように、アクセスが制限された特定のディレクトリへの要求を http から https にリダイレクトしたいという共通の問題があります。
ただし、サーバーで mod_rewrite を有効にしていません。私はmod_aliasしか持っていません。これは、RedirectMatch コマンドを使用する必要があることを意味します。RewriteCond と RewriteRule を使用する通常のソリューションは使用できません。
(政治についてのメモ: 私は非常に大きな組織の小さなサブサイトのメンテナーであるため、サーバー管理者が私のためにサーバー構成を変更することをいとわないでしょう!)
次の行は機能しますが、無限ループを形成します (書き換えられた URL が最初の正規表現によってまだ捕捉されているため)。
RedirectMatch permanent ^/intranet(.*)$ https://example.com/intranet$1
社内の IT 担当者の 1 人が、ファイルを新しい名前 (/intranet2/ など) の新しいディレクトリに移動することで、無限ループを回避することを提案しました。それは私にはかなり醜いようです。また、 http://example.com/intranet2/に直接アクセスすることで、偶発的または故意に安全でない接続に戻る可能性があります。
次に、これを試しましたが、うまくいきませんでした:
RedirectMatch permanent ^http:(.*)/intranet(.*)$ https://example.com/intranet$1
最初の引数はルート ディレクトリからのファイル パスでなければならず、"http:" で開始できないため、機能しなかったと思われます。
だから:これを行うためのより良いアイデアはありますか?