.htaccessに記述するリライトルールのサンプル
mod_rewriteによるリダイレクトで、比較的よく使うリライトルールのサンプルをメモ。
URLのアンダーバーをハイフンに変更
/blog/2012/06/post_abc123.phpでアクセスがあったらpost-abc123.phpにリダイレクトします。
RewriteEngine on
RewriteRule ^([0-9]+)/([0-9]+)/post_(.+)\.php$ /$1/$2/post-$3.php [R,L]
ディレクトリの移動
古いディレクトリにアクセスがあったら新しいディレクトリにリダイレクトします。
RewriteEngine on
RewriteRule ^/old/(.*)$ /new/$1 [R=301,L]
動的なページを静的なページに見せる
/sample/2012/06.htmlにアクセスがあったら/sample/sample.php?a=2012&b=06lにリダイレクトします。
RewriteEngine on
RewriteRule ^/sample/([0-9A-Za-z]+)/([0-9A-Za-z)]+)\.html$ /sample/sample.php?a=$1&b=$2 [L]
特定のディレクトリにあるページの拡張子を書き換える
blogを含むURLの拡張子がhtmlの場合、phpに書き換えてアクセスする。
RewriteEngine on
RewriteCond %{REQUEST_URI} ^/blog.*$
RewriteRule ^(.*)\.html$ /$1.php [R,L]