.htaccess で正規表現を使ってリダイレクトする

なぜか「bing Webmaster Center」のクロール詳細ページに、各ページのURL拡張子を htm に置き換えたページがエラーとして検出されていました。

このサイト内では拡張子 htm のページはありませんし、これらのページへのリンクも 0 となっているので問題は無いはずなのですが、とりあえず .htaccess ファイルに htm へのアクセスを html へリダイレクトする一文を追加しておきました。

RedirectMatch / パターンマッチによるリダイレクト

前に記述した、301 へのリダイレクトの際は一定のURLへのリダイレクトでしたが、今回のような拡張子だけを変更してリダイレクトする場合は、正規表現を用いることになります。

このような場合は、正規表現を利用したパターンにマッチした場合にリダイレクトを行う RedirectMatch が使用されます。

  • RedirectMatch ステータス パターン リダイレクト先

記述する際はこんな感じで、「ステータス」の部分は 301 なら permanent というようにステータスコードを記述します。(ステータスは省略可)

他に、temp(302) , seeother(303) , gone(410) があり、省略すると 302 ステータスコードが返されます。

パターン」と「リダイレクト先」はどちらも正規表現で記述が可能です。

今回の目的の、拡張子 htm を持つURLにアクセスがあった場合に html へリダイレクトする場合は、以下の記述を .htaccess ファイルに追加することになります。

  • RedirectMatch permanent (.*)\.htm$ $1.html

スポンサードリンク

inserted by FC2 system