.htaccess で mod_rewrite を設定する

● mod_rewrite一般的な書式(.htaccessに以下のように記述します)

# mod_rewriteを有効にする
RewriteEngine on

# mod_rewriteを有効にするURL階層トップ
RewriteBase /

# 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]

● mod_rewrite の RewriteBase を環境によって切り替える方法

mod_rewrite の RewriteBase を環境によって切り替える方法 - Qiita

リライトルールの書式 http://goo.gl/FdYQZd

関連エントリー

No.232
12/17 21:12

edit

.htaccess