2017-07-06 13 views
1

Apache 2.4をリバースプロキシとして使用しています。URLにリダイレクトする必要があります。例えば、これは私のURLです:Apache 2.4 URLの完全一致のリライトURL

https://user:[email protected]/site1.php?1

私はこの書き換え条件を使用します。

RewriteCond %{HTTP_HOST} ^user:[email protected]\.marcolino7\.myds\.me$ 

しかし、それは一致しないHTTP_HOSTは、認証データが含まれていないので、私は考えます。 URLを認証データと照合してリダイレクトできる方法はありますか?

多くのおかげ マルコ

答えて

0

正しく言うように、それはホストヘッダーの一部ではないので、そのようには一致しません。

変数REMOTE_USERを使用して実行できます。どのようにそれをするかは、あなたのルールの文脈に依存します。 the documentationと具体的には以下の引用符を参照してください。

%{LA-U:variable}可変の最終値を決定する 内部(URLベースの)サブリクエストを実行するルック先読みのために使用することができます。これは、現在の段階では利用できない の書き換え変数にアクセスするために使用できますが、後の段階で設定されます。

たとえば、あなたが使用する必要があり、サーバ単位のコンテキスト(httpd.confファイル)内の からREMOTE_USER変数に応じて書き換える %{LA-U:REMOTE_USER} - この変数は URL翻訳後来る承認 段階で設定されていますフェーズ(その間に mod_rewriteが動作します)。一方

、mod_rewriteのは、APIのフィックスアップ相を介してそのディレクトリ毎の コンテキスト(.htaccessファイル)を実装し、 認可フェーズは、このフェーズの前に来るので、あなただけのそのコンテキストで %{REMOTE_USER}を使用することができますので。

あなたhttpd.confファイルでこのような何か:

RewriteCond %{LA-U:REMOTE_USER} =user 

または.htaccess中:

RewriteCond %{REMOTE_USER} =user 
+0

こんにちは、答えてくれてありがとう、それは私の場合ではありません。私は、URLがユーザ名とパスワードで渡されたときに、URLがちょうど書き換えられたときではなく、1回書き直す必要があります。 –