
- 現役Webマーケター
(元Webディレクター) - 東証一部上場の不動産系企業で勤務
- 最高収益:月間30万円
.htaccess(ドット・エイチ・ティ・アクセス)とはWebサーバーの設定ができるファイルです。
「.(ドット)」が先頭に付いている形が正しいので注意しましょう。私は最初見落としていました。
Webサーバーの設定ができるといっても、イメージがわかないと思います。
具体的には下記のようなことができます。
このように.htaccessはWebサイトの運用上でとても役に立つ仕組みになっています。
内容 | 説明 |
---|---|
301リダイレクト | 特定のページに自動で転送する設定 |
Basic認証 | ユーザー名とパスワードの入力を求める設定 |
IP制限 | 指定したIPアドレス以外からのアクセスを制限する設定 |
キャッシュの設定 | ブラウザで表示したキャッシュをパソコンに保存して、 次回以降の読み込み速度を向上する設定 |
404エラー時に別ページを表示 | 404エラーが発生時に別ページを自動的に表示する設定 |
.htaccessはWebサーバーによく使われているApacheが入っているサーバー環境であれば、基本的には動作するようになっています。
しかし、Nginxを利用しているWebサーバーで一部.htaccessファイルが利用できないことがあるので利用できるかどうかはレンタルサーバー会社などに確認してみてください。
リダイレクトは一言でいうと転送という意味になります。
つまり、.htaccessでAページからBページにリダイレクトの設定をしておくことで、ユーザーがAページにアクセスした際に、自動的にBページに転送することができます。
特に既にページが存在しない場合などに、適切にユーザーを見てほしいWebサイト、Webページに誘導できます。
よく使うリダイレクトとしては、301リダイレクトと302リダイレクトがあります。
301リダイレクトは一般的な転送方法で、「永続的な転送」という意味を持ってます。
転送前のページが受けていたSEO評価を転送後のページに渡すことができます。Webサイトの引っ越しなどによりドメインや各ページのURLが変わるのであれば301リダイレクトをすることが多いです。
もう一方の302リダイレクトは「一時的な転送」を意味します。
メンテナンスなどで一時的に別のページを見てもらいたい時などは302リダイレクトが最適です。
301リダイレクトと302リダイレクトは以下のように覚えておきましょう。
リダイレクトの方法としては以下の3つがあります。
内容 | 説明 |
---|---|
.htaccess | .htaccessファイルを使用。 転送前ページのSEO評価を引き継ぐことが可能。 |
meta refresh | meta refreshタグをHTMLに記述。 meta refreshによる転送はSEO評価を引き継がないため避けるほうが無難です。 |
JavaScript | JavaScriptで転送前ページのHTMLに記述。 転送前ページのSEO評価を引き継ぐことが可能ですが、 .htaccessでリダイレクトする方が安全です。 |
基本的にリダイレクトを行う場合は、.htaccessを使用する方法をオススメします。
リダイレクト設定を行うことで転送前のページのSEO評価を転送後のページに引き継ぐことが可能です。
例えば、Webサイトの引っ越しにより、ドメインや各ページのURLが変わることになった場合、301リダイレクトで変更後のページのURLに今までのSEO評価を渡すことができます。
また転送前のページが既に削除されていたり、存在しない場合でも.htaccessに転送前ページと転送後ページを記述することでユーザーを転送することはもちろんSEO評価の引き継ぎも可能です。
.htaccessファイルはテキストエディターで作成します。Windows標準で利用できるメモ帳やMacのメモで作成が可能です。
設定したい内容を記述して、下記3つの注意点を守れば作成できます。
特にファイルを保存する際に、保存時のダイアログでファイルの種類という項目内容によって、拡張子が自動的に入ってしまう設定になっている可能性があるので注意が必要です。「.htaccess.txt」や「.htaccess.index.html」ではなく「.htaccess」の拡張子が付いていない形が正しいです。
もしサーバー環境によって、「.htaccess」のファイル名で保存できない場合、一旦「.htaccess.txt」や「.htaccess.index.html」で保存して、サーバーにアップロード→ファイル名をリネームして、「.htaccess」にするのでも問題ありません。
.htaccessファイルはリダイレクトを行う対象のWebサイトが格納されているサーバーのルートディレクトリに設置する必要があります。
「http://nuko-blog.net/」というWebサイト全体に.htaccess の設定を行いたい場合は、「http://nuko-blog.net/」のホームディレクトリにアップロードします。仮に、「http://nuko-blog.net/blog/」という特定のディレクトのみに.htaccess の設定を行いたい場合は、「http://nuko-blog.net/blog/」のホームディレクトリにアップロードします。
「https://nuko-blog.net/■■.html」から「https://nuko-blog.net/●●.html」に301リダイレクトする場合は下記のように記述します。
<IfModule mod_rewrite.c>
RewriteEngine on
RewriteRule ^■■\.html$ https://nuko-blog.net/●●.html[R=301,L]
</IfModule>
「/■■/」から「/●●/」に301リダイレクトする場合は下記のように記述します。
<IfModule mod_rewrite.c>
RewriteEngine on
RewriteBase /
RewriteRule ^■■/(.*)$ /●●/$1 [R=301,L]
</IfModule>
「https://■■.com/」から「https://●●.com/」に301リダイレクトする場合は下記のように記述します。
<IfModule mod_rewrite.c>
RewriteEngine on
RewriteCond %{HTTP_HOST} ^■■\.com
RewriteRule ^(.*) https://●●.com/$1 [R=301,L]
</IfModule>
複数のページから「https://●●.com」に301リダイレクトする場合は下記のように記述します。
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteRule .* http://●●.com [R=301,L]
</IfModule>
ディレクトリ「■■」を除外して、新ドメイン「●●.com」に301リダイレクトする場合は下記のように記述します。
<IfModule mod_rewrite.c>
RewriteEngine on
RewriteCond %{REQUEST_URI} !(^/■■/)
RewriteRule ^(.*) https://●●.com/$1[R=301,L]
</IfModule>
サブドメイン「https://sub.■■.net/」から新ドメイン「https://■■.net/」に301リダイレクトする場合は下記のように記述します。
<IfModule mod_rewrite.c>
RewriteEngine on
RewriteCond %{HTTP_HOST} ^sub\.■■\.net$
RewriteRule (.*) https://■■.net/$1 [R=301,L]
</IfModule>
「□□/■■.php」から「/○○/●●.php」に301リダイレクトする場合は下記のように記述します。
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteRule ^□□/■■.php /○○/●●.php [R=301,L]
</IfModule>
「http://nuko-blog.net」から「http://www.nuko-blog.net」に301リダイレクトする場合は下記のように記述します。
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteCond %{HTTP_HOST} ^nuko-blog\.net
RewriteRule ^(.*) http://www.nuko-blog.net/$1 [R=301,L]
</IfModule>
「http://www.nuko-blog.net」から「http://nuko-blog.net」に301リダイレクトする場合は下記のように記述します。
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteCond %{HTTP_HOST} ^www\.nuko-blog\.net
RewriteRule ^(.*) http://nuko-blog.net/$1 [R=301,L]
</IfModule>
「http://nuko-blog.net/index.html」から「http://nuko-blog.net/」に301リダイレクトする場合は下記のように記述します。
<IfModule mod_rewrite.c>
RewriteEngine on
RewriteCond %{THE_REQUEST} ^.*/index.html
RewriteRule ^(.*)index\.html$ http://nuko-blog.net/$1 [R=301,L]
</IfModule>
「http://nuko-blog.net」から「https://nuko-blog.net」に301リダイレクトする場合は下記のように記述します。
<IfModule mod_rewrite.c>
RewriteEngine on
RewriteCond %{HTTPS} off
RewriteRule ^(.*) https://nuko-blog.net/$1 [R=301,L]
</IfModule>