Webサーバー上でおもにアクセス制御ができる.htaccess(ドットエイチティアクセス)。
便利な機能ですが、具体的な設定方法がわからない人も多いのではないでしょうか。
そこで今回は、.htaccessでできることや書き方、実際に設定するときの注意点について解説します。
当サイトでは「おすすめのレンタルサーバー」についても紹介しています。ほかのレンタルサーバーもあわせて検討したい方はぜひチェックしてみてください。
.htaccessとは
「.htaccess」とは、Webサーバーでの動作を制御できるファイルです。IPアドレスによるアクセス制御やリダイレクト設定などに用いられます。
.htaccessファイルによる制御は、ディレクトリ単位で設定できるのが特徴です。
.htaccessを使用するには専用のWebサーバーソフトが必要であり、おもに世界的に普及しているApache(アパッチ)で使用できます。
その他のサーバーソフトでも利用可能ですが、事前に確認しておく必要があります。
関連記事 Webサーバーソフトウェアとは?
.htaccesでできること5つ
.htaccessでできること5つについて説明します。
- リダイレクト
- BASIC認証
- カスタム404エラーページの表示
- IP制限
- URL正規化
リダイレクト
リダイレクトとは、指定したURLにアクセスしたユーザーを別の指定したURLに自動で転送する設定です。
リダイレクトにはいくつか種類があり、おもに利用されるのは以下のようなものが挙げられます。
- 301リダイレクト
- 302リダイレクト
「301リダイレクト」は、永続的なリダイレクトです。ホームページのURLが変わったときなどに使用します。
「302リダイレクト」は、一時的なリダイレクトです。PCとスマホサイトの振り分けなどに使用します。
リダイレクトは、サイトのリニューアルやドメイン変更をおこなった際に設定することが多いでしょう。
URLが変わってもGoogleの評価を引き継げる場合もあるため、約1年間はリダイレクト設定しておくことをおすすめします。
BASIC認証
BASIC(ベーシック)認証とは、指定したページにID・パスワードの入力を求めるアクセス制限機能です。
公開前のサイトや会員制ページなどで、一部のユーザーのみにアクセスを許可したい場合にBASIC認証をかけます。
簡単にできるセキュリティ施策のひとつです。
カスタム404エラーページの表示
カスタム404エラーページとは、存在しないURLにアクセスしたときにエラー表示をし、読者の離脱を防ぐページです。
単なる404エラーページでは「Not Found」と表示されるのみです。アクセスしたページが存在しなければ、関心が薄れてサイトから離脱されやすくなります。
独自の404ページを用意し、エラー表示のみではなく、「検索ボックス」「カテゴリ別のリンク」「トップページへのリンク」などを設置することによって、サイトの回遊性を高められます。
「カスタム404エラーページ」も、.htaccessファイルに1行設定するだけで簡単に設定できます。
IP制限
IP制限とは、指定したページへのアクセスをIPアドレスで制限できる機能です。
公開前のサイトや不特定多数のアクセスを制限し、セキュリティを強化したい場合に利用します。
IPアドレスには「グローバルIPアドレス」「プライベートIPアドレス」の2種類があります、IP制限をかけることができるのは後者のプライベートIPアドレスのみです。
URL正規化
URL正規化とは、1つのページで複数のURLが存在するとき、指定したURLを検索エンジンに宣言することです。
ブログやホームページで独自のドメインを取得したとき、wwwの有無やhttp/httpsなど2つのURLを使用できます。
しかし、複数のURLがあると、SEOの観点から「重複したコンテンツ」とみなされ、上位表示がされにくくなります。
そのような場合の対策として、どのURLを検索エンジンに見てほしいか指定できるのがURLの正規化です。
.htaccessのルール
.htaccessを書くためには、以下のルールを把握しておきましょう。
- 文字コードは「UTF−8」(BOMなし)にする
- 改行するときはLFを使用する
- 文章の最後に改行をいれる
- ファイル名は「.htaccess」にする
.htaccessファイルの書き方
具体的な書き方の例をご紹介します。
リダイレクト
Redirect permanent / リダイレクト先のURL
転送前のURLにアクセスがあれば「リダイレクト先のURL」に自動で転送されます。
BASIC認証
AuthUserfile /ルートディレクトリからのパス/.htpasswd
AuthGroupfile /dev/null
AuthName "Please enter your ID and password"
AuthType Basic
require valid-user
BASIC認証をかける場合、.htaccessファイルに加えて「.htpasswd」というファイルが必要です。
.htpasswdには、BASIC認証のIDとパスワードを書き込む必要があります。
BASIC認証のIDとパスワードは、以下のような生成ツールなどを用いて作成するのがおすすめです。
カスタム404エラーページ
ErrorDocument 404 /error/404.html
これで、404エラーが発生したとき、errorディレクトリの404.html
が表示されるようになります。
同様の方法で、404以外に、401/500エラーなども独自のページを表示させることが可能です。
IP制限、ホスト制限
order deny,allow
deny from all
allow from 指定のIPアドレス
allow from 指定のIPアドレス
allow from 指定のホスト
この方法で、指定のIPアドレス/ホストからのみアクセスを許可できます。
また、1文目の「order deny,allow」を、「order allow,deny」とすることで、逆に指定のIPアドレス/ホストのアクセスを拒否できます。
URL正規化
RewriteCond %{HTTP_HOST} !^www\.
RewriteRule ^(.*) $https://www.%{HTTP_HOST}/$1 [R=301,L]
上記は、「wwwなし」のURLを、「wwwあり」のURLに正規化する方法です。
たとえば、https://example.com/helloworld.htmlでアクセスすると、https://www.example.com/helloworld.htmlへリダイレクトされます。
.htaccessの設定手順
.htaccessの設定手順について説明します。
.htaccessファイルを作成する
まずは.htaccessファイルを作成する必要があります。
ファイル名を.htaccess
にし、テキストエディタを使用して作成します。
サーバーにアップロードする
FTPソフトなどを用いて、.htaccessファイルをアップロードします。
注意点として、アップロードするディレクトリによって.htaccessファイルの有効範囲が異なります。
有効となる範囲は、アップロードしたディレクトリとその下層にあるディレクトリのみです。
設置場所について詳しくは次で解説します。
.htaccessの設置場所
.htaccessファイルの設置場所は、設定したいディレクトリです。
たとえば、ホームページ全体に.htaccessの設定をしたい場合はホームディレクトリにアップロードします。
部分的に反映したい場合は、設定したいディレクトリにアップロードすると、そのディレクトリより以下の階層に反映されます。
ファイルは複数設置することが可能ですが、複数ある場合は下の階層にあるものが有効となるので注意が必要です。
.htaccessの注意点
.htaccessの注意点は、以下の3つです。
- .htaccessが利用可能か確認する
- 設置場所に間違いがないか確認する
- 設定した内容が反映されているか確認する
.htaccessが利用可能か確認する
.htaccessを利用するにあたり、以下の条件を満たしているか確認する必要があります。
- Apacheを利用しているか
- .htaccessファイルの使用に制限がないか
Apache以外のWebサーバーソフトウェアを使用している場合、.htaccessファイルは機能しません。
まずはApacheを使用しているかの確認が必要です。
また、Apacheを使用していた場合でも、レンタルサーバーによってはデフォルトの設定で.htaccessを制限していることがあります。
レンタルサーバー契約前には、Webサーバーと.htaccess制限を確認しておくことをおすすめします。
設置場所に間違いがないか確認する
.htaccessファイルは設置場所(ディレクトリ)によって有効範囲が変わります。
.htaccessファイルをアップロードしたディレクトリ以下の階層が有効となりますので、設置場所に注意する必要があります。
もし「正しくファイルに記述してアップロードしたのに反映されない」という状況が起こったら、まずは設置場所が正しいか確認してみてください。
設定した内容が反映されているか確認する
設定した.htaccessファイルは、正常に反映されているか確認しましょう。
たとえば、「正しくBASIC認証やIP制限がかかっているか」「リダイレクトが機能しているか」を確かめてみてください。
.htaccessの設定が反映されていない場合は、以下のことを確認します。
- .htaccessが利用できない設定になっていないか
- .htaccessの記述内容に誤りはないか
- .htaccessの設置場所に誤りはないか
.htaccessのQ&A
.htaccessを利用するにあたり、よくある質問についてまとめています。
.htaccessの読み方は?
「ドットエイチティアクセス」と読みます。
.htaccessは誰でも利用できる?
.htaccessを利用するには、ディレクトリにファイルを設置できる許可が必要です。
サーバー管理者が権限を持っている場合は、設置を依頼するか、権限をもらわなければなりません。
.htaccessの操作に慣れていない方は、専門家・エンジニアなどに相談するのもひとつの方法です。
WordPressで.htaccessの設定は可能?
もちろん、WordPressで.htaccessの設定は可能です。
WordPressでサイトを作成している場合は.htaccessファイルはあらかじめ作成されています。
.htaccessの設置場所は、WordPressをインストールをしたルートディレクトリ内にあります。
また記述や設定方法に違いはありません。
.htaccessの記述をミスするとどうなる?
.htaccessの記述に誤りがあると、BASIC認証やIP制限がかからなかったり、正しくリダイレクトされなかったりします。
記述の修正は可能ですので、エラーがでた場合は記述内容や設置場所に誤りがないか、確認しておく必要があります。
セキュリティ強化やリダイレクトに.htaccessを活用しよう!
.htaccessについて記述方法や書き方、注意点について解説しました。
Webサーバーのさまざまな動作の制御に、.htaccessファイルは有効です。
一見難しいですが、設定方法はシンプルなので、記述ルールや設置場所に注意しながら自身でも活用してみてください。