WEB講座
.htaccessファイルを用いてのリダイレクト方法
リダイレクトとは?
Webサイトを運営していると、URLの転送が必要になることが多々あります。
サイトやページなどを新しいURLに変更した際、自動的に転送をする仕組みのことをリダイレクトと言います。
リダイレクトが必要なのは、主に下記の場合かと思います。
・ドメイン変更等により、サイトのURLが変わった際の対応
・PCサイトとスマホサイトのURLが異なる場合の転送
リダイレクト設定の際によく使われるのは、「301リダイレクト」と「302リダイレクト」の2種類がありますが、ほとんどの方が「301リダイレクト」で設定すると思います。
301・302リダイレクトの違い
ユーザビリティ面では301と302、どちらのリダイレクトでも新しいページに遷移されるので問題ありません。
しかし、SEO面で異なった扱いになるため注意が必要です。
こんな時は301リダイレクトで設定
・サイトリニューアルなどでURL変更をする
・URLの正規化
など、元のURLに戻す予定がない場合は、301リダイレクトを使用しましょう。
301リダイレクトを使用すると、検索エンジンが「元のURLに戻す予定がない」と判断し、旧URLから新URLにページのSEO評価も引き継いでくれます。
※悪い評価も引き継いでしまうので、場合によっては注意が必要です。
こんな時は302リダイレクトで設定
一時的にURL変更をするだけで、将来的にURLを元に戻すといった場合は302リダイレクトを使用します。
302リダイレクトを使用した場合は、検索エンジンに「将来的に元のURLに戻す」と判断されます。
.htaccessでリダイレクト設定をする前提条件
.htaccessファイルを使ってリダイレクトするには、以下の前提条件があります。
②Apacheというサーバー(ソフト)を使っていること
③mod_Rewriteという機能をサポートしているサーバーであること
※Apache(アパッチ)以外のサーバーソフトウェアでも、.htaccessが使える場合は多々ありますが、記述方法等が少し変わる場合があります。
301リダイレクトの設定方法
「.htaccess」ファイルを使う方法で、代表的な301リダイレクトの書き方をご紹介します。
http → https のリダイレクト
「http」と「http(s)」の2つのURL、どちらでもアクセス出来てしまう場合は、検索エンジンが重複コンテンツとみなしてしまい、SEO評価が分散されたりマイナスになることがあるため、URLの正規化(統一)は必須になります
RewriteEngine On
RewriteCond %{HTTPS} off
RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [R=301,L]
wwwありURL → wwwなしURLへリダイレクト
RewriteEngine on
RewriteCond %{HTTP_HOST} ^www\.example\.com$
RewriteRule ^(.*)$ http://example.com/$1 [R=301,L]
ドメインが変わった際のリダイレクト
サイトリニューアルでドメインが変わった場合などは、下記のように設定すると旧URL→新URLにリダイレクトさせることができます。
RewriteEngine On
RewriteCond %{http_host} ^old.com
RewriteRule ^(.*) https://new.com/$1 [R=301,L]
ディレクトリ単位のリダイレクト
/access/ → /about/ にリダイレクトさせたい場合
RewriteEngine on
RewriteRule ^access$ /about/ [R=301,L]
.htaccessを書くのを助けてくれるツール
.htaccessファイルを書くのを補助してくれるツールもあります。
コードを書くのが大変な場合は、下記などを利用してみて下さい。
https://www.htaccesseditor.com/
ホームページ制作のご相談はこちら WEB講座一覧