ドメイン統合

RewriteEngine onについて

「RewriteEngine on」はRewriteEngineを使用する際に記述します。
ただし、RewriteEngineを使う項目を複数利用する場合は、最初の1行目に記述するだけでかまいません。
URL統一(www,index有無、http,https)

wwwの統合(wwwあり→www無し)

wwwを含めたURLにアクセスがあると、自動的にwww無しのURLにリダイレクトする方法です。
この設定はここで紹介しているリダイレクト項目の一番上に記述してください。
なお、うまくリダイレクトしない場合は、以下のリンク先の方法を行うと実現できる可能性があります。
ドメインの統合方法

RewriteEngine on
RewriteCond %{HTTP_HOST} ^www\.×××\.×××$
RewriteRule ^(.*)$ http://×××.×××/$1 [R=301,L]

HTTPの統合(HTTP→HTTPS)

HTTPへのアクセスをHTTPSにリダイレクトする方法です。

RewriteEngine on
RewriteCond %{ENV:HTTPS} !on
RewriteRule .* https://%{HTTP_HOST}%{REQUEST_URI} [R=301,L]

トップページURLの統合(index.html→URL)

index.htmlへのアクセスをURLにリダイレクトする方法です。
赤字の部分にURLを記述してください。

RewriteEngine on
RewriteCond %{THE_REQUEST} ^.*/index\.(html|php|cgi)
RewriteRule ^(.*)index\.(html|php|cgi)$ http://×××.×××/$1 [R=301,L]

Webページの自動転送

301リダイレクト

.htaccessで301リダイレクトを利用する方法です。
ドメインやディレクトリを変更するとサイトのURLが変わるため、大きなマイナスになります。
これを回避できるのがリダイレクトで、古いURLにアクセスがあると新しいURLに自動転送させる事ができます。
なお、転送先は大雑把に指定するのではなく、できるだけ正確にページ単位で指定した方が良いようです。
リダイレクトとは?
301リダイレクト設定とmeta refreshリダイレクト
リダイレクトの.htaccessジェネレーター

  1. 旧URL:ドメイン名を省略したディレクトリのパス(http://×××.comを省略した/からのURL)
  2. 新URL:ドメイン名を含めた全てのパス
  3. 書式:Redirect permanent 旧URL 新URL
  4. 例(http://abc.com/の場合):Redirect permanent /aaa/bbb.html http://abc.com/ccc/bbb.html
  5. 一括指定(正規表現利用可):RedirectMatch permanent /aaa/(.*) http://abc.com/ccc/$1
  6. アドレス変更ツールの使用(Search Console)

ドメインの移行

ドメインを変更した場合の移転方法です。
旧URLのサーバーに以下を記述した.htaccessだけを置いておけば、自動的にリダイレクトされて新URLに移動します。

RewriteEngine On
RewriteCond %{http_host} ^旧URL
RewriteRule ^(.*) 新URL/$1 [R=301,L]

リダイレクト期間

リダイレクトは可能であれば半永久的に継続する事が望ましいとされています。
しかし、無駄なコストがかかるなどで、あまり長い期間継続したくない場合があります。
そんな時はアクセス解析を利用してリンク元をチェックし、旧URLからのアクセス数を見て判断してください。
一定期間(1ヶ月~数ヶ月程度)経過すると新しいURLの方にアクセスが増えてくるので、ある程度移行できたら停止しても大丈夫だと思います。
ちなみにGoogleではサイト移転時に旧ドメインを最低半年間保持する事を推奨しています。

オンラインPC館
トップページテクニックウェブ制作 → .htaccessリダイレクト