2

そのような複数のASPXファイルを含むフォルダーがあります

folder/file1.aspx
folder/file2.aspx
folder/file3.aspx
etc..

これらのファイルを別のフォルダーに移動し、次のように拡張子を静的 html ファイルに変更する必要があります。

folder2/file1.htm
folder2/file2.htm
folder2/file3.htm
etc..

ユーザーを正常にリダイレクトしようとしていますが、どうすればよいかわかりません。.NET では、aspx ファイルの要求を傍受し、新しいディレクトリ内の同等の html にリダイレクトすることは可能ですか?

これもプログラムで行う必要があります。page_load に 301 リダイレクトがある最初のフォルダーにすべての aspx ファイルを残すことはできません。folder/any_resourceへの呼び出しを取得し、リソースの名前を取得し、.aspx を .htm に置き換えて、修正されたリソース名で新しいディレクトリにリダイレクトするにはどうすればよいですか?

これはまったく可能ですか?

IIS 7 で .NET フレームワーク バージョン 4 を使用しています。

4

1 に答える 1

1

URL 書き換え機能を調べてください。IIS7 でサポートされています。これは、web.config ファイルを介して行うことも、IIS GUI を使用してルールを作成することもできます。

folder/page.aspx サーバーにアクセスしようとすると、自動的に folder2/page.aspx が取得されます。

各ページに完全一致を提供する (面倒な) か、正規表現を使用して 1 つのルールで完了することができます (すべてのページが次のフォルダーで同じ名前を持っている場合)。

あなたがしたいことは、folder/.aspx に行くすべてのものをキャッチし、サーバーが folder2/.aspx を返すようにすることです。

したがって、folder//aspx へのリクエストをキャッチするための正規表現は次のようになります。

folder/(\w*).aspx

\w* を括弧で囲むと、後方参照が可能になります ( {R:1} )

folder2/{R:1}.htm

上記はリダイレクト URL です。ファイル名を取得し、folder2 でその .htm バージョンを探します。

すべてをリダイレクトしたい場合は、単に .aspx と .htm を取り除いてください。そう:

folder/(\w*)

folder2/{R:1}

これは、IIS のどこでそれを行うかを示す簡単なチュートリアルです。ルールを作成するときは、[アクション タイプ] で [書き換え] ではなく [リダイレクト] を選択してください。

URL 書き換え

于 2013-02-21T19:22:42.283 に答える