.htaccess(ドットエイチティアクセス)は、Apache(アパッチ)と呼ばれるWebサーバーの動作を制御するためのファイルです。レンタルサーバーなどを使用している場合、ユーザーはWebサーバーを管理するための権限は与えられていません。.htaccessを有効にすることで、サーバーの管理権限がなくても、自分のWebサイトの範囲内で、リダイレクトの制御が可能になります。
.htaccessは、301リダイレクトやURLの正規化などSEO対策の実装面でも頻繁に使用されます。本記事では.htaccessの具体的な記述方法や作成方法、置き場所、作成時の注意点やトラブル対策についてわかりやすく解説します。
目次
.htaccessとは
.htaccess(ドットエイチティアクセス)とは、Apache(アパッチ)と呼ばれるソフトウェアを使用しているWebサーバーの動きを制御するファイルのことです。通常、ApacheのWebサーバー制御には「root権限」と呼ばれる高度なアクセス権限が必要です。レンタルサーバーを使用している場合にはroot権限がないため、.htaccessを使用してリダイレクトやアクセス制御などの処理を行います。
.htaccessは、自社が運営するWebサイトの範囲内であれば設定可能です。ただしWordPressを使用している場合、初期設定時に自動で.htaccessファイルが作成されているため、この記事で解説する設定は必要ありません。
.htaccessは、以下の条件を満たす際に作成可能です。
- レンタルしているWebサーバーにApacheが使われている
- Webサーバーで.htaccessの使用が許可されている
.htaccessファイルの作成方法
.htaccessは、ファイルを作成して指定箇所にアップロードするだけで設定が完了します。ファイルを作成する基本的なルールは、次のとおりです。
- ファイル名を「.htaccess」にして拡張子はつけない
- 文字コードはUTF-8(BOMなし)
- 改行コードはLF、最後に必ず改行を入れる
上の画像のようにWindowsのメモ帳でも作成できますが、改行コードがCRLFとなっているため、改行コードを設定できるテキストエディタ(サクラエディタなど)を使用した方が良いでしょう。
またWindowsのメモ帳を使用する場合、自動で「.txt」のような拡張子が入ったままFTPでアップロードし、アップロード後にファイル名を変更することも可能です。
.htaccessファイルの置き方・場所
作成した.htaccessファイルをFTPソフトなどで、指定のディレクトリにアップロードして設定します。必要に応じてファイルの拡張子を修正しましょう。
ただし.htaccessファイルには有効範囲があり、ファイルを置いたディレクトリ配下が対象となります。上の画像のように「AAA」というディレクトリにファイルを置いた場合、「/AAA」「/AAA/aaa」「/AAA/aaa2」などにのみ適用されます。
全ページを対象としたい場合は、「rootディレクトリ」と呼ばれる最上位のディレクトリに設置しましょう。
.htaccessでできる8つの機能と具体的な記述方法
.htaccessでできる代表的な8つの機能と具体的な記述方法とともに解説します。
- Webサイト全体のリダイレクト
- ページ単位での301リダイレクト
- カスタム404エラーページの表示
- BASIC認証(パスワード認証)
- IP制限
- URLの正規化
- ファイル拡張子単位でのアクセス制限
- ファイル一覧の表示可否
なお、.htaccessはインターネット上で公開されているツールを使うと簡単に作成できます。以下の2つのツールを試してみると良いでしょう。
①Webサイト全体のリダイレクト
Webサイト全体のドメインのみが変更になる場合、古いURLにアクセスした訪問者を新しいURLへ自動で遷移させるためにリダイレクト設定が必要です。URL構造が同じであれば、.htaccessで一括設定できます。
たとえば、サブドメインだったオウンドメディアをサブディレクトリに移動する場合に利用可能です。リダイレクトは.htaccessの中でもよく使用されるため、以下の記述方法を参考にしてみてください。
▼Webサイト全体を新しいドメイン「BBB.jp」へリダイレクトする記述方法
# Redirect
Redirect permanent / http://www.BBB.jp/aa/index.html/
②ページ単位での301リダイレクト
Webサイト全体ではなく、ページ単位あるいはディレクトリ単位で301リダイレクトをかけることも可能です。たとえば、Webページのリニューアルなどでページの構造そのものが変わり、各ページのURLが変更になる場合に有効です。具体的な記述方法は、次のとおりです。
▼ページ単位でhttp://www.AAA.jp/new/old/index.htmlからhttp://www.AAA.jp/new/index.htmlへ301リダイレクトを設定する記述方法
# Redirect
Redirect permanent /http://www.AAA.jp/old/index.html http://www.AAA.jp/new/index.html
③カスタム404エラーページの表示
カスタム404エラーページは、アクセスしたページが存在しないことを示すオリジナルのエラーページです。サーバーが用意しているデフォルトのエラーページではなく、アクセスしたページに近い内容のページへのリンクを設置したり、関連する商品を表示したりするなど、オリジナルのエラーページを使用できます。
カスタム404エラーページを設定することでユーザビリティが向上し、離脱を抑制できる点がメリットです。具体的な記述方法は、次のとおりです。
▼カスタム404エラーページを表示する記述方法
# Error Page Change
ErrorDocument 401 http://www.AAA.jp/error/404.html
④BASIC認証(パスワード認証)
BASIC認証は、ユーザー名とパスワードを使用したアクセス制限の仕組みです。テストサイトなど、一部の人が一定の期間しかアクセスしない場合に使用されます。具体的な記述方法は、次のとおりです。
▼BASIC認証(パスワード認証)を設定する記述方法
AuthUserFile /home/cman/public_html/htaccess/sample/basic/.htpasswd
AuthGroupFile /dev/null
AuthName “Please enter your ID and password”
AuthType Basic
require valid-user
「AuthUserFile」では、ユーザー名とパスワードを格納するサーバー内パスを指定し、ここでは「.htpasswd」と記述しています。次の「AuthGroupFile」では、ユーザーをグループごとに設定したい場合に指定が必要で、ここでは「null(なし)」と記載しています。
また「AuthName」ではサーバーからのメッセージを指定します。ここでは「Please enter your ID and password(あなたのIDとパスワードを入力してください)」と記述しています。
次の「AuthType」は認証タイプで「Basic」を、最後の「require」では認証したユーザーのみアクセスできることを指定しています。
⑤IP制限
IP制限は、特定のIPアドレスからしか閲覧できないように指定する仕組みです。たとえば、社内用のページを社内のIPアドレスからしか閲覧できないようにすることが可能です。具体的な記述方法は、次のとおりです。上の例では「111.222.111.222」のIPアドレスからのアクセスのみ許可しています。下の例では反対に「111.222.111.222」のIPアドレスからのアクセスを拒否しています。
▼特定のIPアドレスからしか閲覧できないように設定する記述方法
# AccessControl IP/HOST
order deny,allow
deny from all
allow from 111.222.111.222
▼特定のIPアドレスを拒否するように設定する記述方法
# AccessControl IP/HOST
order allow,deny
allow from all
deny from 111.222.111.222
⑥URLの正規化
URLの正規化とは、同じ内容で異なるURLを持つコンテンツを、ひとつのURLに集約することです。検索エンジンは、httpsやwwwの有無などを別のURLと認識します。同じ内容で異なるURLが存在すると、検索エンジンからの評価が分散するため対応が必要です。
そこで.htaccessを設定して301リダイレクトさせることで、URLを正規化できます。具体的な記述方法を見てみましょう。
▼wwwの有無を統一する記述方法
# === wwwありに統一 ================================
RewriteEngine on
RewriteCond %{HTTP_HOST} ^cman\.jp
RewriteCond %{SERVER_PORT} 80
RewriteRule ^(.*)$ http://www.cman.jp/$1 [R=301,L]
RewriteCond %{HTTP_HOST} ^cman\.jp
RewriteCond %{SERVER_PORT} 443
RewriteRule ^(.*)$ https://www.cman.jp/$1 [R=301,L]
⑦ファイル拡張子単位でのアクセス制限
.htaccessはファイルの拡張子単位でのアクセス制限も可能です。たとえばサービス資料やホワイトペーパーなどのダウンロード用資料のPDFが、意図せずアクセス可能になってしまうことを防ぎます。具体的な記述方法は、以下を参考にしてください。
▼拡張子「pdf」のファイルへのアクセスを制限する記述方法
<Files ~ “\.pdf$”>
deny from all
</Files>
⑧ファイル一覧の表示可否
Webサイトのディレクトリにアクセスした際に、ファイル一覧を表示するかどうかを設定できます。通常はサーバー側の設定で非表示なっているケースが多く見られるので、必要に応じて変更しましょう。記述方法は以下のとおりです。
▼ファイル一覧の表示可否を設定する記述方法
Options -Indexes
Options Indexes
「Options -Indexes」はディレクトリ一覧のファイル表示を拒否し、「Options Indexes」は許可します。
.htaccessファイルの注意点・トラブルシューティング
次に、.htaccessファイルを使用する際の注意点とトラブルシューティングを見てみましょう。
- WordPressで.htaccessファイルが作成できない
- 記述を間違えるとWebサイトが表示されなくなる
WordPressで.htaccessファイルが作成できない
WordPressは通常、初期設定時に自動的に.htaccessファイルが作成されます。ディレクトリのパーミッションによっては、ファイルが作成できないのでパーミッションを755に変更する作業が必要です。またFTPソフトによっては.htaccessファイルが非表示になっているケースもあるので、ファイルを作成する前に確認してみましょう。
記述を間違えるとWebサイトが表示されなくなる
.htaccessファイルはWebサーバーの挙動を操作するため、指示を間違えるとエラーが出てしまい、Webサイトが表示されなくなる恐れがあります。設定変更後は表示がおかしくないか、テストサーバーで確認することが重要です。
またファイルを設置するディレクトリを間違えると、.htaccessファイルで指定した内容が反映されないので、こちらも事前チェックが必要です。
SEO対策においても重要な.htaccess
SEO対策を進めるうえで、.htaccessは頻繁に使用することになります。したがって記述方法や仕組みを覚えておくことがSEO対策の観点では、重要です。とくに以下のポイントに注意しましょう。
- 検索エンジンからの評価を分散させない
- ページのURLが変更になったことを正しく伝える
- カスタム404エラーページでユーザビリティを高める
①検索エンジンからの評価を分散させない
.htaccessファイルを用いて、「wwwの有無」や「httpsとhttp」など同じ内容で異なるURLを正規化することで、検索エンジンからの評価分散を防ぐ効果があります。Webサイトのリニューアル時において、意外と設定漏れが多く見られるので注意しましょう。
②ページのURLが変更になったことを正しく伝える
ページのリニューアルや統廃合によって、URLが変更になったことを301リダイレクトで検索エンジンに正しく伝える必要があります。正しいURLが伝えられないと、ページの評価も正しく引き継がれません。
③カスタム404エラーページでユーザビリティを高める
カスタム404エラーページは、ユーザビリティを高め離脱を抑制する効果があります。Webサイトに訪問するユーザーは何かしらの目的や期待を持っています。その期待を裏切らないよう、.htaccessを使って関連するコンテンツへの導線などを表示することが大切です。
まとめ
.htaccessファイルの設定で、ドメインが変更する場合のリダイレクトやカスタム404エラーページの表示、アクセス制御などを設定できます。レンタルサーバーでもApacheを使用しており、.htaccessの使用許可がある場合は利用できるので、必要に応じて指定しましょう。適切に設定されなければ、検索エンジンの評価分散やユーザビリティの低下にもつながるので、設定漏れをなくすことが大切です。
Faber CompanyではWebサイト改善の無料相談を受け付けています。SEOのプロが診断していますので、お気軽にご相談ください。