2017-11-27 5 views
0

これで見つかった回答は特定のパラメータを持ち、パラメータが変更された場合は動作しません。ALL getパラメータをNginxの別のドメインにリダイレクト

ように私はそのように来てURLを持っている:私は完全に別のドメインとのファイルにこのURLをリダイレクトしますが、GET paramsはを維持する必要があり

/logs.php?user_id=10032&account_id=10099&message=0&interval=1&online=1&rsid=65374826&action=update&ids=827,9210,82930&session_id=1211546313-1602275138

だから、にリダイレクト終わる:私は失敗したこれまでにしようとしているものです。ここ

https://example.com/the_logger.php?REPEAT_ALL_GET_PARAMETERS_HERE


location logs.php 
{ 
    rewrite https://example.com/the_logger.php?$args last; 
} 

をしかし、URLと一致していないようですまたはリダイレクトします。私はnginx confの論理を誤解していると思う。もしそれが.htaccessなら私は大丈夫だろうと思う。私が達成しようとしているものが必要な場合、ここにいくつかの例を置くことができます。

答えて

2

これはリダイレクトであり、リクエストをリバースプロキシではないと述べているので、クライアントに301または302を実行するように指示するには、returnディレクティブを使用します。 returnディレクティブを使用する方が簡単で、クライアントをリダイレクトする場合はmore recommend approachとなります。以下のような

何かが欲しいものを行う必要があります。

location /logs { 
    return 302 https://example.com/the_logger.php$is_args$args; 
} 

どこ$is_argsだろう出力?場合、クエリ文字列が空でない、と$argsは、クエリ文字列そのものである場合にのみ

+1

メルシーbeaucoup! –

+0

また、 "$ arg"が "$ args"になっていると考えるのは正しいですか? $ argだったときにこのエラーが発生しました。 '未知の" arg "変数"。 –

+1

申し訳ありません。私はそれを正しく定義しましたが、例は間違っていました。更新しました。 –

関連する問題