ドメイン統合
RewriteEngine onについて
「RewriteEngine on」はRewriteEngineを使用する際に記述します。
ただし、RewriteEngineを使う項目を複数利用する場合は、最初の1行目に記述するだけでかまいません。
URL統一(www,index有無、http,https)
HTTPの統合(HTTP→HTTPS)
HTTPへのアクセスをHTTPSにリダイレクトする方法です。
<ifModule mod_headers.c>
RewriteEngine on
RewriteCond %{ENV:HTTPS} !on
RewriteRule .* https://%{HTTP_HOST}%{REQUEST_URI} [R=301,L]
</ifModule>
トップページURLの統合(index.html→URL)
index.htmlへのアクセスをURLにリダイレクトする方法です。
赤字の部分にURLを記述してください。
<ifModule mod_headers.c>
RewriteEngine on
RewriteCond %{THE_REQUEST} ^.*/index\.(html|php|cgi)
RewriteRule ^(.*)index\.(html|php|cgi)$ https://×××.×××/$1 [R=301,L]
</ifModule>
www無しに統合(www→www無し)
wwwへのアクセスをwww無しに統合する方法です。
<ifModule mod_headers.c>
RewriteCond %{HTTP_HOST} ^www\.×××\.×××$
RewriteRule ^/?$ "http\:\/\/×××\.×××\/" [R=301,L]
</ifModule>
Webページの自動転送
301リダイレクトのページ指定
.htaccessで301リダイレクトを利用する方法です。
ドメインやディレクトリを変更するとサイトのURLが変わるため、大きなマイナスになります。
これを回避できるのがリダイレクトで、古いURLにアクセスがあると新しいURLに自動転送させる事ができます。
なお、転送先は大雑把に指定するのではなく、できるだけ正確にページ単位で指定した方が良いようです。
※ 正規表現を用いた一括指定の場合は同一の名前があるとエラーが発生するので注意してください。
リダイレクトの.htaccessジェネレーター
- 旧URL:ドメイン名を省略したディレクトリのパス(https://×××.comを省略した/からのURL)
- 新URL:ドメイン名を含めた全てのパス
- 書式:Redirect permanent 旧URL 新URL
<ifModule mod_headers.c>
aaa→ccc:Redirect permanent /aaa/bbb.html https://abc.com/ccc/bbb.html
bbb→ccc:Redirect permanent /aaa/bbb.html https://abc.com/aaa/ccc.html
</ifModule>
301リダイレクトの一括指定
301リダイレクトの一括指定の方法です。
これには正規表現を使用します。
- 旧URL、新URL:ドメイン名を省略したディレクトリのパス(https://×××.comを省略した/からのURL)、正規表現を使用する
- 書式:RedirectMatch permanent 旧URL 新URL(正規表現を使用する)
<ifModule mod_headers.c>
一括指定(aaa→ccc):RedirectMatch permanent /aaa/(.*) /ccc/$1
一括指定(aaa→aaa/ccc):RedirectMatch permanent ^/aaa/(.*) /aaa/ccc/$1
</ifModule>
リダイレクト期間
リダイレクトは可能であれば半永久的に継続する事が望ましいとされています。
しかし、無駄なコストがかかるなどで、あまり長い期間継続したくない場合があります。
そんな時はアクセス解析を利用してリンク元をチェックし、旧URLからのアクセス数を見て判断してください。
一定期間(1年程度)経過すると新しいURLの方にアクセスが増えてくるので、ある程度移行できたら停止しても大丈夫だと思います。
ドメインの自動転送
ドメインの移行
ドメインを変更した場合の移転方法です。
旧URLのサーバーに以下を記述した.htaccessだけを置いておけば、自動的にリダイレクトされて新URLに移動します。
<ifModule mod_headers.c>
RewriteEngine On
RewriteCond %{http_host} ^旧URL
RewriteRule ^(.*) 新URL/$1 [R=301,L]
</ifModule>