スポンサードリンク

【mod_rewrite】 ディレクトリ名を変更した際のリダイレクト

mod_rewriteを利用して、ディレクトリ名を変更した際のリダイレクト処理について説明しています。

スポンサードリンク

ディレクトリ名を変更した際のリダイレクト

環境

前提条件として、環境を以下のように設定します。

  • ルートディレクトリ
    /var/www/html/○○○/
  • 「abc」ディレクトリを何かの事情で「def」にリネームした
    /var/www/html/○○○/abc

    ↓リネーム

    /var/www/html/○○○/def

リネームしたことで、旧URL(例:http://○○○.com/abc/hoge.html)でのアクセスはエラーとなってしまいます。

これはユーザーにとってもSEOにとっても由々しき問題です。

RewriteRuleでリダイレクトする

この場合、ルートディレクトリに.htaccessを準備し、以下のコードを記述すれば解決できます。

RewriteEngine On
RewriteRule ^abc/(.*)$ def/$1 [R=301,L]

解説

基本事項としてmod_rewriteRewriteRuleを読んでください。

「http://○○○.com/abc/hoge.html」でアクセスがあった場合、RewriteRuleのパターン部分「^abc/(.*)$」には「abc/hoge.html」が渡され、正規表現でマッチするので、「def/$1」に置換され(「$1」は後方参照)、フラグの「R=301」で301リダイレクトされます。

つまり、「http://○○○.com/def/hoge.html」にユーザーを移動させることができます。


Warning: count(): Parameter must be an array or an object that implements Countable in /home/yskymk/www/000web/ysklog/mod-rewrite/wp-includes/class-wp-comment-query.php on line 405

コメント

まだコメントはありません。

コメントフォーム
お名前
コメント