祥寛2006/09/22Webアプリケーションを構築するうえで、複雑なURLが好ましくないことはいうまでもない。複雑なURLはエンド・ユーザーが覚えにくい、タイプミスしやすいというデメリットもさることながら、検索エンジンのクロールを阻害する一因になることから、SEO(検索エンジン最適化)という観点でもマイナスとなる場合があるためだ。以下のようなURLを想定してほしい。http://www.example.com/default.aspx?category=1&id=A-01http://www.example.com/default.aspx?category=1&id=A-02http://www.example.com/default.aspx?category=1&id=A-03検索エンジンのクローラは、このようにクエリ情報のみが異なるURLを「内容の類似した同じページ」と見なし、クロールしない可能性がある。一部の検索エンジンでは、クエリ・パラメータが1つまでならばクロールするなど、ルールはさまざまあるようだが、特定の検索エンジンに依存しないという意味では、極力、URLからクエリ・パラメータを除外するに越したことはないだろう。2.0では、実際のURLをよりシンプルな短いURLでリマッピングするための機能を提供している。以下のページはクエリ・パラメータcategoryの値によって表示を切り替えるごく単純なWebフォームだ(なお、本稿では具体的なコードは割愛する)。クエリ・パラメータcategoryによって表示メッセージを切り替えるWebフォーム(上:UrlMapping.aspx?category=morning、下:UrlMapping.aspx?category=night)「category=morning」の場合は「おはようございます」、「category=night」の場合は「こんばんは」を表示する。このWebフォームでは「〜/UrlMapping.aspx?category=morning」と指定された場合には「おはようございます」、「〜/UrlMapping.aspx?category=night」と指定された場合には「こんばんは」というメッセージを表示する。これらのURLを、それぞれ「Morning.aspx」「Night.aspx」にリマッピングしてみよう。この設定は次のようにWeb.configに記述する。/></urlMappings></system.web></configuration>オリジナルのURLを異なるURLにリマッピングするための設定(Web.config)リマッピング設定を行うのは、<urlMapping>/<add>要素の役割だ。mappedUrl属性にはオリジナルのURLを、url属性にはリマッピングした先のURLを、それぞれアプリケーション・ルートを基点とした相対パスで指定すればよい。以上の設定を追加したら、実際に「〜/Morning.aspx」「〜/Night.aspx」でアクセスしてみよう。それぞれ「〜/UrlMapping.aspx?category=morning」「〜/UrlMapping.aspx?category=night」の内容が表示されれば成功だ。リマッピングした結果(上:Morning.aspx/下:Night.aspx)「Morning.aspx」の場合は「おはようございます」、「Night.aspx」の場合は「こんばんは」を表示する。ちなみに、<urlMapping>/<add>要素のurl属性には(例えば)「Morning.html」と指定することで、あたかも静的なファイルにアクセスしているように見せ掛けることも可能だ。リマッピングした結果(Morning.html)静的なHTMLファイルにアクセスしているように見えるが、実際には「UrlMapping.aspx?category=morning」にリマッピングされている。拡張子「.html」はデフォルトではASP.NETが認識しないので、あらかじめ該当の拡張子とASP.NETエンジン(aspnet_isapi.dll)の関連付けを行う必要がある。拡張子の関連付けについては、「TIPS:[ASP.NET].htmlや.pdfファイルをフォーム認証やロギングの対象にするには?」が詳しいので、こちらも併せて参照いただきたい。この際に注意点がある。次の画面は実際に、aspnet_isapi.dllに拡張子「.html」を関連付けているところだ。[アプリケーションの拡張子マッピングの追加/編集]ダイアログaspnet_isapi.dllに拡張子「.html」を関連付ける。実ファイルは存在しないので、「ファイルの存在を確認する」のチェックは外すこと。マッピングした拡張子「.html」の実ファイルは存在しないので、「ファイルの存在を確認する」のチェックは外さなければならない。より自動抽出したものです。7で追加された新機能の中から、「数値リテラル構文の改善」と「ローカル関数」を紹介する。TranslatorはPowerPoint用のアドイン。