別のドメインにリダイレクトする
サイトの移転をするときに古いドメインから新しいドメインにリダイレクトさせる方法です。
例)oldhoge.com から newhoge.com にリダイレクトする。
http://oldhoge.com
↓
http://newhoge.com
RewriteEngine On
RewriteBase /
RewriteRule ^(.*) http://newhoge.com/$1 [R=301,L]
または下記でもOKです。
Redirect permanent は mod_rewrite を使わない場合の書き方になります。
Redirect permanent / http://newhoge.com/
ディレクトリをリダイレクトする
パーマリンクを変更したり階層を変更するときにリダイレクトさせる方法です。
例)/foo/ から /bar/ にリダイレクトする。
http://directoryhoge.com/foo/aaa.html
↓
http://directoryhoge.com/bar/aaa.html
RewriteEngine On
RewriteBase /
RewriteRule ^foo(.*)$ /bar$1 [R=301,L]
実際にこのブログでもパーマリンク変更するときに実行しています。
ページをリダイレクトする
ページ名を変更したときにリダイレクトさせる方法です。
例)aaa.html から bbb.html にリダイレクトする。
http://pagehoge.com/foo/aaa.html
↓
http://pagehoge.com/foo/bbb.html
RewriteEngine On
RewriteBase /
RewriteRule ^aaa.html$ /bbb.html [R=301,L]
www あり・なしを統一する
www あり・なしのどちらからでもアクセスできるということは2つのURLが存在することになります。
URLのバラツキはSEO的にマイナス評価となるのでこれを統一することで対策をします。
( RewriteRule に記述している http は SSL導入済みの場合は https にします。)
www ありに統一する
RewriteEngine On
RewriteCond %{HTTP_HOST} ^arihoge¥.com
RewriteRule ^(.*) http://www.arihoge.com/$1 [R=301,L]
www なしに統一する
RewriteEngine On
RewriteCond %{HTTP_HOST} ^www.nashihoge¥.com
RewriteRule ^(.*) http://nashihoge.com/$1 [R=301,L]
http → https にリダイレクトする
SSLを導入したときに、http を https にリダイレクトさせる方法です。
RewriteEngine On
RewriteCond %{HTTPS} off
RewriteRule ^(.*) https://%{HTTP_HOST}/$1 [R=301,L]
正規表現については下記でまとめています。
コメント