【基本】.htaccessとは SEOにおける活用方法やディレクトリへの有効範囲について
.htaccess(ドットエイチティーアクセス)とは、Apache(アパッチ)というウェブサーバーソフトウェアが使用されている環境の中で、ウェブサーバーをディレクトリ単位で制御するためのファイルのことです。
具体的には、リダイレクトの設定やカスタム404ページの表示設定などを行うことができます。
本記事では、.htaccessの基本と主な活用方法について、詳しく解説していきます。記事後半では、.htaccessに関する注意点もまとめていますので、ぜひ最後までご一読ください。
この記事のポイント
-
.htaccessはApacheが使用されている環境で、Webサーバーをディレクトリ単位で制御するためのファイルのこと
-
.htaccessは主にBASIC認証、リダイレクト、カスタム404ページの用途で使用されることが多い
- .htaccessで競合する指示を出した場合、より下層のディレクトリに設置した.htaccessの優先度が高くなる。
また、サイトリニューアルのために.htaccessについて調べている方は、ほかにもいくつか注意すべき点があります。詳しくは、以下の資料でご確認ください(ダウンロード無料)。
サイトリニューアルで後悔したくない方へ
サイトリニューアルによる検索流入悪化、コンバージョン悪化を防ぐポイントを資料にまとめました。無料相談もお気軽にご利用ください!リニューアル実施の前後は問いません!
「ナイルのSEO相談室」は業界歴15年超のナイルが運営しているメディアです。SEOの最新情報を随時発信しているので、ぜひブックマークしてください!
またSEOにお悩みの方は無料相談やSEOコンサルティングサービスのご利用もぜひご検討ください!
目次
.htaccess とは
.htaccessとは、ウェブサーバーをディレクトリ単位で制御するファイルのことです。
Apache(アパッチ)というウェブサーバーソフトウェアが使用されている環境の中で利用できます。
.htaccessを利用すれば、特定のウェブページに対してリダイレクトやアクセス制限、カスタム404ページを表示するように指示を出すことが可能です。
.htaccessを設置したディレクトリでは、サブディレクトリを含むすべてのファイルに効果があります。例えば下図のように、「/sample/」に.htaccessを設置した場合、下層の「/sample/1/」「/sample/2/」「/sample/2.1/」にも制限が適用されるイメージです。
.htaccessは、サブディレクトリにも設置が可能です。上層のディレクトリ(/sample/)と下層のディレクトリ(「/sample/2/」など)に、.htaccessが設置されている場合は、サブディレクトリに設置された.htaccessの指示が優先されます。
.htaccessの有効範囲について
.htaccessの有効範囲は、下図のようにディレクトリ /a 配下に.htaccessファイルを設置した場合、 その指示は点線で囲まれたディレクトリ /a 以下の階層に有効となります。
ディレクトリ /a1 、 /a2 は.htaccessに記載した内容の影響を受けます。一方で、ディレクトリ /a 以下の階層ではないディレクトリ /b 、 /c には影響はありません。
また、 ディレクトリ /a1 にも.htaccesssファイルを設置した場合、 サブディレクトリの指示が優先されます。 例として、下記A、 B、 の競合する指示を.htaccessファイルで行った場合、 “B” の指示が優先され、/a1にアクセスした場合 /c へ301リダイレクトされます。
A、 ディレクトリ /a の.htaccessファイルで ディレクトリ/a1 へのアクセスを /b へ301リダイレクトB、 ディレクトリ /a1 の.htaccessファイルでディレクトリ /a1 へのアクセスを /c へ301リダイレクト(優先)
.htaccessの主な活用目的
.htaccessを実際に活用するのは、主に以下の4つの場合です。
【活用目的1】BASIC認証
.htaccessを設置したディレクトリにアクセスする際、 IDとパスワードの入力をユーザーに求めることができます。
BASIC認証は、サイト公開前に関係者だけで最終チェックを行う際などによく使われる方法です。
【活用目的2】IP制限
IP制限を活用すると、ウェブサイトへアクセスできる範囲を限定できます。
例えば社内のIPアドレスのみ接続を許可すれば、社外からのアクセスを遮断できます。逆に、特定のIPアドレスを指定してアクセスできないように設定することも可能です。
【活用目的3】リダイレクト
指定したURL、ディレクトリにアクセスしたユーザー、 クローラーなどを別のページにリダイレクト(転送)させることができます。
サイトをリニューアルした際に、旧URLから新URLへリダイレクトさせる場合、 www.のありなし、末尾のスラッシュのありなしといったURLを正規化する場合などに使用します。
また、リダイレクトを設定する際には「301」「302」などのステータスコードを設定することができます。
リニューアルの際の前ページからの評価の引き継ぎなど、SEOの文脈ではとてもポイントになります。
【活用目的4】カスタム404エラーページの作成
ウェブサイトにアクセスした際、 ページが削除されていたり、 そもそも存在しないページにアクセスすると、ページが存在しないことを示す404ページが表示されます。
このとき、 ユーザーの離脱を防ぐためにTOPページへのリンクや検索ボックスなど、ユーザーが求める情報を得られるような導線を設定したカスタム404ページを設定することが望ましいです。そのカスタム404ページも.htaccessによって設定できます。
覚えておきたい.htaccessの書き方の例3つ
ここからは、.htaccessの書き方について紹介します。.htaccessの実装を考えている方は、ぜひチェックしてください。
【例1】Basic認証をする方法
Basic認証とは、認証時に使うパスワードのファイルを指定して認証を行うことです。
そのため、まずは、.htpasswdファイルを作りましょう。
とはいえ、IDとパスワードをそのまま入力してしまうとセキュリティ的にリスクが大きいため、「.htaccess による認証用 パスワード暗号化ツール」などを使って暗号化してから利用することをおすすめします。
ID・パスワードが暗号化できたら、.htpasswdファイルに貼り付けて保存し、サーバーにアップロードします。
続いて、.htaccessファイルを以下のように更新します。
AuthUserfile /自社サーバーのフォルダパスを入れる/.htpasswdAuthGroupfile /dev/null
AuthName "Please enter your ID and password"
AuthType Basic
require valid-user
それぞれの意味については、以下をご確認ください。
- 「AuthUserfile /自社サーバーのフォルダパスを入れる/.htpasswd」
ここには、先ほど作成した「.htpasswd」ファイルのフルパスを入力します。
- 「AuthGroupfile /dev/null」
グループごとにアクセス許可を設定する箇所で、特に設定しない場合は「/dev/null」と入力します。
- 「AuthName "Please enter your ID and password"」
ID・パスワード入力欄の上に表示する領域名です。日本語を入力すると文字化けする可能性があるため、英字を入力しましょう。
- 「AuthType Basic」
認証方式を指定する場所です。今回はBasic認証なので「Basic」を指定しています。
- 「require valid-user」
認証が通ったユーザーのアクセスを指定しています。「valid-user」を指定すると、認証を通ったすべてのユーザーの認証を許可できます。
【例2】IPアドレスのアクセスを制御する方法
サイトのセキュリティを強化するためにIPアドレスで制限をかけたい場合、IPアドレスによる制限は「許可(allow)」と「拒否(deny)」を指定します。
例えば特定のIPアドレス「192.0.2.0」のみ許可し、それ以外を拒否する場合は以下のような記述となります。
▼特定のIPアドレスを許可したい場合
order deny,allowdeny from all
allow from 192.0.2.0
一方で、特定のIPアドレス「192.0.2.0」のみ拒否し、それ以外許可する場合の記述は以下の通りです。
▼特定のIPアドレスを拒否したい場合
order allow,denyallow from all
deny from 192.0.2.0
1文目の「order XXXX,XXXX」が判定順を表している点に、注意が必要です。
例えば「order allow,deny」の場合に、許可の定義をした上で拒否の定義をしています。そのため、特定のIPアドレスのみを拒否することが可能となります。
【例3】リダイレクトを有効にする方法
最後に、.htaccessへのリダイレクト設定を紹介します。
http://www.hoge.com/のURLで「wwwあり」「index.htmlなし」に正規化する例です。
RewriteEngine onRewriteCond %{HTTP_HOST} ^hoge\.com
RewriteRule (.*) http://www.hoge.com/$1 [R=301,L]
RewriteCond %{THE_REQUEST} ^.*/index.html
RewriteRule ^(.*)index.html$ http://www.hoge.com/$1 [R=301,L]
Apacheでは、この.htaccessが利用できなくなっている場合や、.htaccessは利用できるもののリダイレクトが利用できなくなっている場合があります。その場合は、Apacheの設定ファイルhttpd.confの設定を変えることで、.htaccessが使用できるようになります。
このhttpd.confというファイルのAllowOverrideという項目をAllにします。
AllowOverride All
また、RewriteEngineを利用するには、mod_rewriteというモジュールを有効化する必要があります。同じhttpd.confの下記の行が、#でコメントアウトされていないかご確認ください。
LoadModule rewrite_module modules/mod_rewrite.so
なお、httpd.confの設定を変えた場合は、Apacheを再起動する必要があります。
これらの設定は、サーバーのroot権限がないと設定できません。専有サーバーやVPS等の一部を除き共用サーバーを利用している場合は、設定できない場合が多いためサーバー管理者への確認をおすすめします。
以上、書き方の例を紹介しましたが、.htaccessの記述はある程度の知識が必要です。不安がある場合は、ウェブ担当者にご相談ください。
また、ナイルの無料相談でもお答えできます。.htaccessへの対応はもちろん、SEOに関する疑問についてもぜひ以下からお問い合わせください。
\疑問や不明点はお気軽にご質問ください/
.htaccessに関する4つの注意点
ここでは、.htaccessを設置する際に気を付けた方がよい、4つの注意点を紹介します。
【注意点1】.htaccessが利用できるサイトか確認する
.htaccessを利用するには、以下の条件を満たす必要があります。
- Apache(アパッチ)が利用できるサーバーである
- .htaccessが制限されていないサーバーである
Apacheを利用できるサーバーでも、設定によっては.htaccessが制限されているケースがあります。上記2つの条件を満たしているか、サーバーの設定を確認してみましょう。
【注意点2】ファイルの記述ルールに気を付ける
.htaccessファイルを作成するときは、拡張子を「.htaccess」に変更しましょう。
拡張子が変更されていないと、.htaccessが正常に動作しません。
また以下のような注意点もあります。
- コメントアウトするときは「#」を先頭におく必要がある
- 文字コードはUTF-8、BOM無し、改行コードはLF(半角文字しか使用しない場合はShift-JISでもOK)
- 最後に必ず改行を入れる
.htaccessのファイルは、メモ帳で作成できます。ただしサーバーへファイルを設置する前に、上記の注意点を厳守しているかチェックしましょう。
【注意点3】.htaccesの設置場所に気を付ける
.htaccesファイルは、設置場所によって制限範囲が異なります。
再び、下図をご覧ください。
例えば「/sample/」に.htaccessファイルを設置した場合、「/sample/1/」「/sample/2/」「/sample/2.1/」に対しても制限が適用されます。
一方で「/sample/2/」に.htaccessファイルを設置した場合、影響を受けるのは「/sample/2/」「/sample/2.1/」のみです。「/sample/1/」は制限を受けません。
.htaccessファイルの設置場所によって、サイト全体に大きな影響が発生します。サーバーに.htaccessファイルをアップロードする際は、設置場所に十分注意しましょう。
【注意点4】.htaccesの操作は専門知識のある人が行う
.htaccessファイルの作成やサーバーへの設置にあたって、知識があまりない人にとっては難しいため専門知識がある人へのご相談をおすすめします。
自社や協力会社の中でウェブに詳しい方に相談されるのがいちばんですが、身近でウェブに詳しい人がいない場合は、ナイルの無料相談を活用してください。
ナイルの無料相談では、.htaccessについてはもちろん、ウェブサイトやコンテンツ制作に関する疑問についてもお答えします。ぜひ以下からお気軽にお問い合わせください。
\疑問や不明点はお気軽にご質問ください/
.htaccessは、ウェブサーバーをディレクトリ単位で制御できる
.htaccessとは、Apache(アパッチ)というウェブサーバーソフトウェアが使用されている環境で、ウェブサーバーをディレクトリ単位で制御するためのファイルのことです。
BASIC認証、リダイレクト、カスタム404ページの表示などに使用します。
注意点の補足として、 記述が間違っていた場合やサーバーの管理者によって、.htaccessファイルの使用が許可されていない場合は「500 Internal Server Error」が表示されます。その際は記述内容を見直すようにしてください。
また、.htaccessは下層ディレクトリに設置されたものが優先されますので、上手くいかない場合は、ほかに.htaccessを設置していないか確認してみましょう。
SEOについて詳しく知りたい方はこの記事も読んでみてください。
なおナイルでは、サイトリニューアルの際にSEO上で気をつけるべきポイントをまとめた資料をご用意しております。
- なにか重大なことを見落としていないか...
- リニューアル後、サイトのパフォーマンスが落ちたらどうしよう...
とサイトリニューアルでは、ハラハラすることも多いかと思います。だからこそ正確な情報を把握することが必要です。資料の具体的な内容については、ダウンロードの上、ご確認ください(ダウンロード無料)。
関連記事