.htaccess(ドットエイチティーアクセス)とは、Apache(アパッチ)というWebサーバーソフトウェアが使用されている環境に置くことで、Webサーバーをディレクトリ単位で制御するファイルのこと。
具体的には、リダイレクトの設定やカスタム404ページの表示設定などを行うことができます。
本記事では、.htaccessの基本と主な活用方法について、書き方の例を挙げながら詳しく解説。
.htaccessに関する注意点もまとめています。
なお、ナイルでは2,000社以上のSEOを含むWebマーケティングを支援してきた知見をもとに、SEOで欠かせない内部対策のチェック項目をまとめた資料をご用意しています。
技術的な実装や課題の抽出についてお困りでしたら、無料相談にも対応しますので、ぜひご活用ください。
SEO内部対策・テクニカルSEO24項目をまとめました
SEO内部対策・テクニカルSEOでチェックするべき24項目をひとつの資料にまとめました!サイトの点検にご活用ください。サイトリニューアル前にチェックしておくことで、SEO悪化を防止できます。もし「サイトの数値が悪化した」「技術的な話がわからない」ご状況でしたらお気軽に無料相談よりご連絡ください。
この記事のまとめ
- .htaccessはApacheが使用されている環境で、Webサーバーをディレクトリ単位で制御するためのファイルのこと
- .htaccessは主にBASIC認証、リダイレクト、カスタム404ページの用途で使用されることが多い
- .htaccessで競合する指示を出した場合、より下層のディレクトリに設置した.htaccessの優先度が高くなる
.htaccessとは
.htaccessとは、Webサーバーをディレクトリ単位で制御するファイルのことです。
Apache(アパッチ)というWebサーバーソフトウェアが使用されている環境の中で利用できます。
.htaccessを利用すれば、特定のWebページに対するリダイレクトやアクセス制限、カスタム404ページの表示といった指示を出すことが可能です。
.htaccessの主な活用目的
.htaccessは、主に次のような目的で利用されます。
<.htaccessの活用目的例>
1 BASIC認証
.htaccessを設置したディレクトリにアクセスする際、IDとパスワードの入力をユーザーに求めることができます。
BASIC認証は、サイト公開前に関係者だけで最終チェックを行う際などによく使われる方法です。
2 IP制限
IP制限を活用すると、サイトへアクセスできる範囲を限定できます。
例えば、社内のIPアドレスのみ接続を許可すれば、社外からのアクセスを遮断できます。
逆に、特定のIPアドレスを指定してアクセスできないように設定することも可能です。
3 リダイレクト
指定したURL、ディレクトリにアクセスしたユーザー、 クローラーなどを別のページにリダイレクト(転送)することができます。
サイトをリニューアルした際に、旧URLから新URLへリダイレクトさせる場合、「www.」のありなし、末尾のスラッシュ(/)のありなしといった、正規のURLにリダイレクトさせる場合などに使用します。
また、リダイレクトを設定する際には「301」「302」などのHTTPステータスコードを設定することが可能です。
サイトリニューアルの際に旧ページから評価を引き継ぎたいときなど、SEOの文脈では重要なポイントになりますので意識しましょう。
「301」「302」リダイレクトについては、下記の記事で詳しく解説しています。
301リダイレクトとは、URLを変更した際に用いる転送処理のステータスコードのことです。サイトの移転でドメインが変わったり、サイト構成の構成変... 301リダイレクトとは?SEOへの影響や設定方法、注意点を解説 - www.seohacks.net |
302リダイレクトとは、URLを一時的に変更する際に用いる転送処理のステータスコードです。似たものとして、URLを恒久的に変更する際に用いる301リ... 302リダイレクトとは/301リダイレクトとの違いや使用時のポイントを解説 - www.seohacks.net |
\ サイトリニューアルの際は、SEO観点で気をつけたほうがいいいことが多いです/
4 カスタム404エラーページの作成
アクセスしたサイトのページが削除されていたり、そもそも存在しないページにアクセスしたりすると、ページが存在しないことを示す404エラーページが表示されます。
このとき、「Not Found」「ご指定のページが見つかりません」とだけ表示されるようなエラーページだと、ユーザーが離脱してしまうかもしれません。
通常の404エラーページの表示
そこで、離脱を防ぐためにTOPページへのリンクや検索ボックスなど、ユーザーが求める情報を得られるような導線を設定したカスタム404エラーページを設定するのがおすすめです。
下図は、ナイルのSEO相談室のカスタム404エラーページの画面。
サイトマップを入れることで、ユーザーが求める情報を探しやすい形にしています。
そのカスタム404ページは、.htaccessによって設定できます。
詳しくは、下記の記事をご覧ください。
カスタム404ページを適切に設置することで、本来離脱していた可能性のあるユーザーに対し、サイト内の回遊を促すことができます。この記事では、基... カスタム404ページとは?404ページでユーザーの離脱を生まないために - www.seohacks.net |
.htaccessの有効範囲
.htaccessを設置したディレクトリでは、サブディレクトリを含むすべてのファイルが有効になります。
例えば、下図のように、「/sample/」に.htaccessを設置した場合、下層の「/sample/1/」「/sample/2/」「/sample/2.1/」にも制限が適用されるイメージです。
<.htaccessの有効範囲>
ただし、異なるディレクトリの場合は影響が及びません。
下図のようにディレクトリ「/a/」に.htaccessを設置した場合、その指示は点線で囲まれたディレクトリ「/a/」以下の階層には有効ですが、ディレクトリ「/b/」「/c/」に影響はありません。
<ディレクトリ別の.htaccess有効範囲>
また、サブディレクトリにも.htaccessを設置することができます。
上層のディレクトリ「/a/」と、下層のディレクトリ「/a/1/」の両方に.htaccessを設置した場合は、下層のディレクトリに設置された指示が優先されます。
.htaccessの書き方の基本
.htaccessの書き方の基本を押さえましょう。
具体的な書き方として、次の4点が挙げられます。
<.htaccessの書き方>
- .htaccessはファイル名を「.htaccess」とする
- .htaccessに記述する文字はUTF-8(BOMなし)を文字コードとして設定する
- .htaccessの改行コードはLFを用いる
- .htaccessの末尾(EOF)の後ろに改行を設ける
BOM(Byte Order Mark)とは、通常、ファイルの冒頭に記述して文字コードの符号化形式を指定する文字列ですが、.htaccessにBOMを記述すると正常に動作しないため注意が必要です。
また、EOF(End Of File)はファイルの終端を示す文字ですが、ファイルは改行で終わるほうがエラーを起こしにくいので、改行を忘れないようにしましょう。
なお、Macではファイル名が「.(ドット)」で始まるものは初期状態では不可視ファイルに設定されているため、そのままの状態では.htaccessが見えません。
「command+shift+.(ドット)」を押して、不可視ファイルの表示をオンにする操作が必要です。
よく使う.htaccessの書き方例
.htaccessの書き方の例として、知っておくと便利なものをご紹介します。
具体的には次の3つです。
<よく使う.htaccessの例>
Basic認証をするときの書き方
Basic認証とは、サイトへのアクセス時にIDとパスワードの入力を求め、パスワードを記述したファイルの情報と一致していたら認証するものです。
Basic認証をする際の手順を紹介します。
<Basic認証をする際の手順>
1 .htpasswdファイルを作る
まずはパスワードを記述するファイル「.htpasswd」を作りましょう。
このファイルにIDとパスワードをそのまま記述してしまうとセキュリティ的にリスクが大きいため、「.htaccess による認証用 パスワード暗号化ツール」などを使って、暗号化してから利用することをおすすめします。
ID/パスワードが暗号化できたら、.htpasswdファイルに貼り付けて保存し、サーバーにアップロードしてください。
2 .htaccessを更新する
続いて、.htaccessファイルを次のように更新してください。
<.htaccessファイルを更新する際の記述>
AuthGroupFile /dev/null
AuthName "Please enter your ID and Password."
AuthType Basic
require valid-user
上記の各パラメータの意味も解説します。
<各パラメータの意味>
- AuthUserFile:「自社サーバーのフォルダパスを入れる」の部分に、先程作成した「.htpasswd」ファイルのフルパスを記述
- AuthGroupFile:グループごとにアクセス許可を設定する(特に設定しない場合は「/dev/null」と入力)
- AuthName:Basic認証時に表示される文字列(日本語は文字化けする可能性があるため英字で記述)
- AuthType:認証方式を指定する場所(Basic認証であれば「Basic」を指定)
- require:valid-userを指定することにより、認証を通ったすべてのユーザーの認証を許可できる
IPアドレスによってアクセスを制御するときの書き方
サイトのセキュリティを強化するためにIPアドレスで制限をかけたい場合、IPアドレスによる制限は「許可(allow)」と「拒否(deny)」を指定します。
例えば、特定のIPアドレス「192.0.2.0」のみ許可し、それ以外を拒否する場合は、次のような記述となります。
なお、Apacheのバージョンが、Apache 2.2以前か、Apach 2.4以降かで、推奨されている記述が異なります。
推奨されていない記述方法にすると動作しない可能性がありますので、気をつけましょう。
<特定のIPアドレスを許可する場合の記述>
※Apache 2.4以降を使用している場合
Require all denied
Require ip 192.0.2.0
</RequireAll>
※Apache 2.2以前を使用している場合
Deny from all
Allow from 192.0.2.0
一方で、特定のIPアドレス「192.0.2.0」のみ拒否し、それ以外許可する場合の記述は、次のとおりです。
<特定のIPアドレスを拒否する場合の記述>
※Apache 2.4以降を使用している場合
Require all granted
Require not ip 192.0.2.0
</RequireAll>
※Apache 2.2以前を使用している場合
Allow from all
Deny from 192.0.2.0
リダイレクトを有効にするときの書き方
最後に、.htaccessでリダイレクト設定をする場合の書き方を紹介します。
正規化のためにリダイレクトする場合
下記は、「http://www.hoge.com/」のURLに対して、「http://hoge.com/」や「http://www.hoge.com/index.html」でアクセスがあった場合に、リダイレクトによって正規化したい場合の書き方です。
<正規化のためにリダイレクトした場合の記述>
RewriteCond %{HTTP_HOST} ^hoge.com$ [NC]
RewriteRule ^(.*)$ https://www.hoge.com/$1 [R=301,L]
RewriteCond %{THE_REQUEST} /index.html [NC]
RewriteRule ^(.*)index.html$ https://www.hoge.com/$1 [R=301,L]
URLの正規化については、次の記事も参考にしてください。
URL正規化とは、重複するページの中で、どのページのURLを検索エンジンに評価してもらうのかを示す施策のことです。URL正規化がされていない場合、... URL正規化とは?よく見る正規化されていないパターンとその対処法について - www.seohacks.net |
ページ単位、ディレクトリ単位、ドメイン単位でリダイレクトする場合
また、よくある用途として、ページ単位やディレクトリ単位、ドメイン単位でリダイレクトするケースが挙げられます。
それぞれの記述方法は下記のとおりです。
<ページ単位でリダイレクト(「■■.html」から「▲▲.html」にリダイレクト)する場合>
RewriteRule ^■■.html$ https://www.〇〇.com/▲▲.html [L,R=301]
<ディレクトリ単位でリダイレクト(「/■■/」から「/▲▲/」に転送)する場合>
RewriteRule ^■■(.*)$ /▲▲$1 [L,R=301]
<ドメイン単位でリダイレクト(「https://www.■■.com/」から「https://www.▲▲.com」に転送)する場合>
RewriteCond %{HTTP_HOST} ^www.■■.com$ [NC]
RewriteRule ^(.*)$ https://www.▲▲.com/$1 [R=301,L]
なおApacheでは、この.htaccessが利用できなくなっていたり、.htaccessは利用できるもののリダイレクトが利用できなくなっていたりする場合があります。
その際は、Apacheの設定ファイル「httpd.conf」の設定を変えることで、.htaccessが使用できるようになります。
<httpd.confの設定の変更方法>
- .htaccessを使用できるようにするには、httpd.conf内の対象ディレクトリの設定で、AllowOverrideという項目をAllにします。
AllowOverride All
- RewriteEngineを利用するには、mod_rewriteというモジュールを有効化しましょう。
LoadModule rewrite_module modules/mod_rewrite.so
同じhttpd.conf内で、上記の行が
#LoadModule rewrite_module modules/mod_rewrite.soのように#でコメントアウトされていると無効化されているため、頭の#を削除しましょう。なお、コメントアウトについては、「 .htaccessでコメントを付ける書き方は?」で解説しています。
- httpd.confの設定を変えた場合は、Apacheを再起動してください。
再起動しないと、変更内容が反映されません。
これらの設定は、サーバーのroot権限がないと設定できません。
専有サーバーやVPS等の一部を除き、共用サーバーを利用している場合は設定できない場合が多いため、サーバー管理者への確認をおすすめします。
カスタム404エラーページを作るときの書き方
オリジナルの404エラーページを制作した場合、それが表示されるようにする書き方を紹介します。
「http://www.hoge.com/■■/」にカスタム404エラーページを表示させる場合は下記のように記述してください。
<カスタム404エラーページの記述>
.htaccessに関する注意点
次に、.htaccessを設置する際の注意点についても見ていきましょう。
<.htaccessに関する注意点>
.htaccessが利用できるサイトか確認する
.htaccessを利用するには、サーバーが下記の条件を満たしていなければいけません。
<.htaccessを利用するための条件>
- Apacheが利用できるサーバーである
- .htaccessが制限されていないサーバーである
Apacheが利用できるサーバーでも、設定によっては.htaccessが制限されているケースがあります。
上記の条件を満たしているかはサーバーの設定を確認してください。
.htaccessの記述ルールに気をつける
.htaccessを作成するときは、拡張子を「.htaccess」に変更することが必要です。
拡張子が変更されていないと、.htaccessが正常に動作しません。
そのほかに、次のような注意点もあります。
<.htaccessの記述ルール>
- コメントアウトするときは「#」を先頭に置く
- 文字コードはUTF-8(BOMなし)を推奨、改行コードはLFを使用する
- 最後に必ず改行を入れる
.htaccessのファイルはメモ帳で作成できます。
ただしサーバーへファイルを設置する前に、上記の記述ルールに則っているかをチェックしましょう。
.htaccessの設置場所に気をつける
.htaccessは、設置場所によって制限範囲が異なります。
「.htaccessの有効範囲」で解説したとおり、.htaccessを設置したディレクトリでは、サブディレクトリを含むすべてのファイルに制限が適用されますが、別のディレクトリは制限を受けません。
.htaccessファイルの設置場所によっては、サイト全体に大きな影響が発生しますので十分注意しましょう。
.htaccessの操作は専門知識のある人が行う
.htaccessファイルの作成やサーバーへの設置は、専門知識がある人へのご相談をおすすめします。
自社や協力会社の中でWebに詳しい方に相談されるのが一番ですが、身近でWebに詳しい人がいない場合は、ナイルにご相談ください。
.htaccessに関する対応はもちろん、SEOをはじめWebマーケティング全般のお悩みに回答することが可能です。
.htaccessにコメントをつけるには?
.htaccess内にコメントを記述したい場合には、先頭に「#」をつけます。
#のついている行はコメントとして認識されるため、機能に影響を与えません。
この記述の仕方は、「コメントアウト」とも呼ばれます。
下記は、エラーページを表示させるための構文に、コメントを付記した例です。
<コメントアウトの記述方法>
ErrorDocument 404 /Error404.html
ErrorDocument 500 /Error500.html
この場合、1行目はコメントとして認識され、2行目と3行目のみ実行されます。
.htaccessを使って、サイトをうまく活用しよう
.htaccessとは、ApacheというWebサーバーソフトウェアが使用されている環境で、ウェブサーバーをディレクトリ単位で制御するためのファイルのこと。
BASIC認証やリダイレクト、カスタム404ページの表示などに使用できるため、ここで紹介した.htaccessの書き方を参考に、サーバーを制御する方法のひとつとして.htaccessを活用してください。
もし、サイトリニューアルのために.htaccessについて調べている方は、無料ダウンロードできる下記の資料もご覧ください!
.htaccess以外にも、サイトリニューアルにあたってSEO面で気をつけたいポイントをまとめています!
サイトリニューアルで後悔したくない方へ
サイトリニューアルによる検索流入悪化、コンバージョン悪化を防ぐポイントを資料にまとめました。無料相談もお気軽にご利用ください!リニューアル実施の前後は問いません!
.htaccessとは?書き方や活用シーン、注意点をわかりやすく解説はナイルのSEO相談室で公開された投稿です。