1

ユーザーのログイン資格情報が安全な方法で送信されるように、アクセスが制限された特定のディレクトリへの要求を 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:" で開始できないため、機能しなかったと思われます。

だから:これを行うためのより良いアイデアはありますか?

4

1 に答える 1

0

mod_alias ディレクティブは、パスや URL ではないリクエスト URI (URL のドメイン名の後に続くもの) で機能します。スキームに対して照合することはできません。

于 2011-02-07T07:26:16.533 に答える