2011-01-27 3 views
1

私はhttps:// www.mysite.comというサイトを持っており、HTTPSを使って完全に実行されています(IISではHTTPをhttpsにリダイレクトします)。これはすべて正常に動作します。httpsからhttpへのリダイレクト時にクエリ文字列が失われる

私は古いバージョンのサイトhttp:// old.mysite.comを持っていますが、これは一部のユーザーがまだ実行しているもので、HTTPのみで実行されています。これはすべて正常に動作します。

私の新しいサイトが私の古いサイトに(Global.asaxのResponse.Redirectを使用して)リダイレクトする1つのURLがあります。たとえば、ユーザーがhttps:// www.mysite.com/page.aspx?query=stringを要求し、それらを古いサイトhttp:// old.mysite.com/page.aspx?query=stringにリダイレクトします。リダイレクトは、以前のサイトにアクセスしたときにクエリ文字列が失われていることを除いてうまく機能します。

私がリダイレクトしなければならないURLは、顧客のサイトに埋め込まれたURLから来ているので、古いサイトを指すようにすべてを更新することはできません。私はテストしたが、これはHTTPで新しいサイトを実行するとすべて正常に動作するので、転送はHTTPからHTTPですが、HTTPSからHTTPにすると失敗します。

問題の原因は何ですか?

おかげで、 ジム

+0

ジムは、リダイレクトの代わりに永続的なリダイレクトを行った場合、違いがありますか?また、デバッグ中に、クエリ文字列のパラメータ値(httpsを使用する場合)が表示されますか?これは答えではありませんが、ユーザーが書籍のマークを更新したことを知らせるページで回答する必要がありますか? –

+0

こんにちはShiv、コメントありがとう。私は実際にヘッダーに一時的なリダイレクト302を追加することでそれをやっています(Response.Redirectはどちらも動作しませんでした)。 1〜2ヵ月後にユーザーは古いサイトから移行され、URLは再び有効になります。デバッグについては、リダイレクトURLに新しいサイトのクエリ文字列が含まれていることがわかりましたが、リクエストURLおよびクエリ文字列を古いサイトのページに(テスト用に)印刷すると、URLのみが表示されます。 – Jim

答えて

2

さてさて、私はそれが誰が問題に当たった場合のように、私は投稿します考え出しました。私は、IIS 7でHTTPリダイレクトモジュールを使用して、新しいWebサイトのHTTPトラフィックをHTTPSにリダイレクトしていました。リダイレクト先のURLには、「https://www.mysite.com」があります。クエリ文字列を保持するためにリダイレクトURLに追加できる変数がいくつか見つかりました。だから私は 'https://www.mysite.com$S$Q'に更新してしまえばうまくいきました。

関連する問題