IIS Expressを使用して、web.configでURL書き換えを行っているMVC 3アプリケーションを開発しています。私はいくつかのルールが完全に機能し、他のルールは失敗するという奇妙なことに少し戸惑いました。URLリライトとIIS Express:いくつかのルールは機能しますが、一部は機能しません。
例えばこれが機能:
<rule name="Remove ETag">
<match serverVariable="RESPONSE_ETag" pattern=".+" />
<action type="Rewrite" value="" />
</rule>
(ソース:https://stackoverflow.com/a/8089525/88709)
をこの1つは(2行目にUnrecognized attribute 'url'
を与える)ない:
<rule name="Remove trailing slash" stopProcessing="true">
<match url="(.*)/$" />
<conditions>
<add input="{REQUEST_FILENAME}" matchType="IsFile" negate="true" />
<add input="{REQUEST_FILENAME}" matchType="IsDirectory" negate="true" />
</conditions>
<action type="Redirect" redirectType="Permanent" url="{R:1}" />
</rule>
(ソース: http://blogs.iis.net/ruslany/archive/2009/04/08/10-url-rewriting-tips-and-tricks.aspx)
Introducing IIS Express(ScottGu)は、SSL、URLリライト、メディアサポート、およびその他のすべてのIIS 7.xモジュールを含む完全なWebサーバー機能を有効にします。
IIS Expressに同梱されているURL書き換えモジュールが、2.0ではなく1.0バージョンである可能性があります。だから私はURL Rewrite Module 2.0をインストールしましたが、私はまだ同じエラーが発生します。
これはどうして起こりますか?その場合、セットアップはVisual Studio 2010 SP1、IIS Express 7.5.1070、ASP.NET MVC 3です。
は、私のIIS Expressで正常に動作します。■おそらく、このエラーが別のコードから発生している可能性があります。 – tugberk
@tugberk私はちょうど新しい空のMVCプロジェクトを作成し、デフォルトをすべて残して、末尾のスラッシュを削除するルールをweb.configに追加しました。同じエラー。どちらのルールもIIS Expressで動作していますか?これは奇妙です。私はセットアップに何か問題があると思っています... –
私はそれについてのブログ記事を書いており、私はすべてIIS Expressでそれをテストしました:http://www.tugberkugurlu.com/archive/remove-trailing-slash from-the-urls-of-your-asp-net-web-site-with-iis-7-url-rewrite-moduleは何が間違っているのか理解できません。 – tugberk