URLリダイレクトをかけたい、という事は比較的よくあることかと思います。当サイトもテーマを組み直すついでに記事のURLも微妙に変更したので、古いURLでのアクセスを受け入れるためにリダイレクトを設定する必要がありました。リダイレクトにもいくつかあって、例えば次のような手法が挙げられます。
- JavaScript
- metaタグ
- .htaccess
- web.config
以前bloggerを利用していたのですが、そのときの記事から本サイトへのリダイレクトはJavaScriptによる方法を採用していました。ですが、どうもそれは恒久リダイレクトじゃなかったらしいので今回は却下。web.configを使った方法を採用しました。
web.configの記述
web.configへの記述は次のような感じで、rewriteMapというのを利用します。7行目がリダイレクトの元 (key) と先 (value) を表しています。次のコード例は/archives/hoge というURLであれば /articles/fuga にリダイレクトするという意味になります。addタグはいくつも記載できるので、サイト内リダイレクトで大活躍しそうです。
<?xml version="1.0" encoding="UTF-8"?> <configuration> <system.webServer> <rewrite> <rewriteMaps> <rewriteMap name="StaticRedirects"> <add key="/archives/hoge" value="/articles/fuga" /> </rewriteMap> </rewriteMaps> <rules> <rule name="Redirect Rule" stopProcessing="true"> <match url=".*" /> <conditions> <add input="{StaticRedirects:{REQUEST_URI}}" pattern="(.+)" /> </conditions> <action type="Redirect" url="{C:1}" appendQueryString="False" redirectType="Permanent" /> </rule> </rules> </rewrite> </system.webServer> </configuration>
「redirectType="Permanent"」としているので、これで恒久リダイレクト設定のハズ。
参考サイト
上記の方法はMSDNのドキュメントを参考にしました。正直言うと、こういう設定関連の小難しい事は苦手です...。