2009-08-06 9 views
0

私は1.1で起動し、IIS5からIIS6に移植されたASP.NET 3.5アプリケーションを持っており、今度はIIS7に行く予定です。 1.1日後には、HTTPモジュールをベースにしたURL書き換え機能を実装しましたが、これは非常に安定した非常に複雑なロジックでも動作します。それは、私たちはこのiis7からiis7への仮想ディレクトリのリダイレクトの変更

www.abc.com/merchant 

のようなURLのを取ると「ABC」は製品のブランドを表し、「商人」はそのブランドを販売する多くの企業の一つであることを把握することができます。ここまでは順調ですね。

URLを保存するために、IIS6の仮想ディレクトリリダイレクト機能を使用してwww.abc.com/oldMerchantをwww.abcにリダイレクトすることがあります。 .com/newMerchant、またはwww.micorsoft.comのような完全に他の何かに - 誰が知っている。これらは現在約1ダースあります。

私はIIS7で同じことをしようとしていますが、私はdiffernetメカニズム(thisなど)を説明する多くの記事を見つけました。私が持っている最大の問題は、IIS7では仮想ルートパスが私のURL書き換えロジックを介して実行され、IIS6では実行されなかったということです。つまり、www.abc.com/oldMerchantをwww.abc.com/newMerchantにリダイレクトするのではなく、URLの書き換えによって最初に認識され、oldMerchantは有効なマーチャントではないと結論づけられます。

この問題を解決するためにコーディングの道を行く前に、誰かが私が逃した魔法のスイッチについて知っていますか?

+0

はい、私たちは同じ問題を抱えており、修正しました。問題を指摘するためにweb.configのコード/設定を表示する必要があります –

+0

http://www.urlrewriting.net/149/en/home.htmlの助けを借りてURL書き換えを実装してください –

答えて

0

私の目は私の頭の中で転がります。 、代わりにwww.abc.com/newMerchantにwww.abc.com/oldMerchantをリダイレクトするのである

は、URLの書き換えは、まずそれを見て、(それが必要として)oldMerchantが有効な商人ではないと結論づけています。

リライトロジックでは、リダイレクトするサイトに適切なリダイレクトルールを含めることはできませんか? (私はリダイレクトがIIS7リライトモジュールで可能であると仮定しています)。

+0

これは確かに可能です。私がこのケースで持っている問題は、 'oldMerchant'がフラットアウトされたという記録です。私はIIS6でできるように、IISでこの問題を解決でき、コーディングしなくてもいいと思っていました。 – n8wrl

+0

よろしくお願いします。何が変更されたのかは分かりませんが、 'oldMerchant'という特別なケースを404ページなどにリダイレクトすると、それは満足するでしょう。 – Cheeso

0

IIS7を統合モードまたはクラシックモードで実行していますか?私はあなたが統合モードで動作していると思います。これは、.Netパイプラインを通じてすべてのトラフィックを送信する新しいモードです。クラシックモードに切り替えると、再びあなたのために働くことができると思います。

+0

統合モードなので意味があります。 – n8wrl

+0

彼はクラシックモードに移行すると、彼はIIS 7の機能を誤ってしまいます。クラシックモードは実際にはIIS 6です。http://blogs.msdn.com/tmarq/archive/2007/08/30/iis-7-0-asp -net-pipelines-modules-handlers-and-preconditions.aspx –

+0

確かに。コードを変更するのが最善の答えです。 – David

関連する問題