22

IIS は、末尾にスラッシュを追加して、ディレクトリの URL クリーンアップを行います。IIS 6 のこの古いドキュメントを参照してください: 末尾のスラッシュのないフォルダーが要求された場合、IIS は礼儀のリダイレクトを生成します

  1. なんで?意図はまだ関連性がありますか?
  2. セキュリティへの影響はありますか?
  3. URL書き換えルール「RemoveTrailingSlashRule」でこれを機能させるにはどうすれば無効にできますか

IIS 7.5 で URL Rewrite 2 を使用してルールを追加すると、そのルールはディレクトリ (IsDirectory を使用) とフォルダー (IsFolder を使用) には適用されません。

末尾のスラッシュ記号を追加または削除するルールの追加に関する次の警告を参照してください。 末尾のスラッシュ記号を追加または削除するルールを追加するに関するこの警告を参照してください

これにより、RemoveTrailingSlashRule1 が作成されます。 受信ルールの編集 RemoveTrailingSlashRule1

4

1 に答える 1

7

ここに子 IIS アプリケーションの特定のケースに対する回答があります: https://stackoverflow.com/a/25817317/292060。子アプリは通常の原因のようですが、この質問では明示的に説明されていません。

質問に答えるために、何年にもわたって IIS と Microsoft を扱ってきた私の意見を以下に示します。引用するのに難しい情報源はありません。これのいくつかは単なる直感です。

  1. なんで?意図はまだ関連性がありますか?

これは、元の「デフォルト ドキュメント」機能、つまり index.html に由来すると思います。Web サイトは、ホームページを単なるドメインにすることを望んでいましたが、これはサブフォルダーに拡張されました。URL の書き換えでは、意図はもはや関係ありません。思いのままに書き換えることができ、むしろ IIS が邪魔にならないようにすることができます。フレンドリーな URL が必要で、末尾にスラッシュがないことが一般的です (ドメイン/ウェブサイトのルートを除きます。Chrome のような一部のブラウザーがかわいくて非表示になっている場合でも、末尾にスラッシュが必要です)。

  1. セキュリティへの影響はありますか?

セキュリティへの唯一の影響は、元のディレクトリのブラウジングだったと思います。デフォルトのドキュメントを作成するのを忘れていて、ディレクトリの参照がオンのままになっていると、他のユーザーが Web サイトのファイルを参照できてしまいます。私の知る限り、ディレクトリ ブラウズは長い間デフォルト設定で無効になっています。

末尾のスラッシュの有無、URL の書き換えの有無にかかわらず、どのようなリクエストでも、サーバーとコードは不適切なリクエストに耐える必要があります。これは、スラッシュに限ったことではなく、すべての状況に当てはまります。http://xkcd.com/327/

  1. URL書き換えルール「RemoveTrailingSlashRule」でこれを機能させるにはどうすれば無効にできますか

問題が子アプリケーションである場合、ここに答えがあります: https://stackoverflow.com/a/25817317/292060 IIS での要約は次のとおりです。

  • 子アプリケーションの既定のドキュメント機能を無効にします。
  • Url Rewrite を使用して、空の要求を default.aspx に書き換える (リダイレクトしない) ルールを作成します。

この質問が、子アプリでなくても通常のサブフォルダーを含む、より一般的な問題に関するものである場合は、ルールから「ディレクトリではありません」を削除することを検討し、ディレクトリが表示された場合でもこれをリダイレクトさせます。それが機能するか、無限のリダイレクト ループが作成されるかはわかりません。

于 2014-09-12T21:59:42.957 に答える