.htaccess で mod_rewrite を設定する

mod_rewrite一般的な書式(.htaccessに以下のように記述します)
# mod_rewriteを有効にする
RewriteEngine on

# www「あり」「なし」を「なし」に統一する
# http://www.hogehoge.com/ → http://hogehoge.com/
RewriteCond %{HTTP_HOST} ^www\.hogehoge\.com
RewriteRule ^(.*)$ http://hogehoge.com/$1 [R=301,L]

# ディレクトリの移転
RewriteRule ^old_dir(.*)$ /new_dir$1 [R=301,L]

# ファイルの移転
RewriteRule ^old_dir/index\.html$ /new_dir/index.html [R=301,L]

# プログラムページの偽装(test.html へアクセスした時に index.php?q=test を表示する)
RewriteRule ^test\.html$ index.php?q=test [L]
RewriteCondについて

RewriteCondは次に現れる RewriteRule にのみ適用されます。

ですので全てのリライトルールに条件を付けたい場合はすべての RewriteRuleの前に記述する必要があります。

# 実在するファイル,ディレクトリには rewrite しない
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^test\.html$ index.php?q=test [L]

リライトルールの書式

http://goo.gl/FdYQZd


関連エントリー

No.232
01/16 09:48

edit

.htaccess