5

これがそのことです:

次のようなベースURLがあるとします。

www.mysite.com?my_first_param=1&my_second_param=2

しかし今、私は自分のURLに新しいパラメータを追加したいと思います:

www.mysite.com?my_first_param=1&my_second_param=2&my_redirect_site=www.myothersite.com

URLに新しいトラッキングパラメータを追加するサービスを使用していると想像してください。例えば:

first_tracking=value1&second_value=value2

私のBASEURLにはすでに「?」が含まれているので パラメータは「&」で追加されるため、最終的なURLは次のようになります。

www.mysite.com?my_first_param=1&my_second_param=2&my_redirect_site=www.myothersite.com&first_tracking=value1&second_value=value2

これはいくつかのパラメータを持つ正しいURLですが、にリダイレクトするwww.myothersite.comと、パラメータが「&」で始まるため、失われます。「?」で始まるトラッキングパラメータを追加するのは正しいでしょうか??このような:

www.mysite.com?my_first_param=1&my_second_param=2&my_redirect_site=www.myothersite.com?first_tracking=value1&second_value=value2

そうでない場合、これに対処するための良いアプローチは何でしょうか?トラッキングパラメータをリダイレクトURLに渡すのはリダイレクトの責任だと思います。

4

4 に答える 4

2

各パラメータの名前と値を適切にURLエンコードする必要があるため、必要なパラメータのマップは次のようになります。

my_first_param => 1
my_second_param => 2
my_redirect_site => www.myothersite.com?first_tracking=value1&second_value=value2

次に、これをクエリ文字列として渡す必要があります。

?my_first_param=1&my_second_param=2&my_redirect_site=www.myothersite.com%3Ffirst_tracking%3Dvalue1%26second_value%3Dvalue2

このエンコーディングを処理するためのURIを構築するには、すでにこれを実行しているライブラリを使用する必要があります。

于 2013-01-16T11:02:34.243 に答える
0

いいえ、URLに2番目の疑問符を含めることはできません。

さらに、リダイレクトURLにアンパサンドがある場合、それらはメインURLの個別のパラメーターとして表示され、リダイレクトURLに接続されているとは見なされません。

このようなリダイレクトを行う場合は、リダイレクトされたURL全体をURLエンコードする必要があります。これを行うために、ほとんどのWeb向け言語には標準関数があります。

于 2013-01-16T11:00:21.883 に答える
0

パラメータ「?」をエンコードします %3Fに置き換えられます

于 2013-01-16T11:04:39.970 に答える
0

これは、追跡パラメータを追加するサービスに対する制御の量によって異なります。パラメータを追加した後でURLを変更できますか?

可能であれば、URLビルダーを使用して、リダイレクトURLにトラッキングパラメーターを追加してから、トラッキングパラメーターを含めてそのURLをURLエンコードします。

あなたが管理しておらず、サードパーティがあなたのURLを変更している場合は、リダイレクトするときにこれを行う必要があります。URLのパラメータを読み取り、リダイレクトURLと追跡パラメータを取得し、前にリダイレクトURLに追跡パラメータを追加します。リダイレクト。

于 2013-01-16T11:24:03.717 に答える