.htaccessとは?できることや書き方・設置場所・注意点についても解説

Webサーバー上でおもにアクセス制御ができる.htaccess(ドットエイチティアクセス)。
便利な機能ですが、具体的な設定方法がわからない人も多いのではないでしょうか。
そこで今回は、.htaccessでできることや書き方、実際に設定するときの注意点について解説します。

.htaccess?名前だけでむずかしそうだな……。

心配することはない!使いこなせば便利な機能だ。
初心者でもわかるように解説していくぞ!
.htaccessとは
「.htaccess」とは、Webサーバーでの動作を制御できるファイルです。IPアドレスによるアクセス制御やリダイレクト設定などに用いられます。
.htaccessファイルによる制御は、ディレクトリ単位で設定できるのが特徴です。
.htaccessを使用するには専用のWebサーバーソフトが必要であり、おもに世界的に普及しているApache(アパッチ)で使用できます。
その他のサーバーソフトでも利用可能ですが、事前に確認しておく必要があります。

Apache(アパッチ)とは、世界的に有名なWebサーバーのことだ。
.htaccesでできること5つ
.htaccessでできること5つについて説明します。
- リダイレクト
- BASIC認証
- カスタム404エラーページの表示
- IP制限
- URL正規化

.htaccessでできることを解説していくぞ!
リダイレクト
リダイレクトとは、指定した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アドレスのみです。

「BASIC認証」より「IP制限」のほうがセキュリティ性に優れているぞ!
URL正規化
URL正規化とは、1つのページで複数のURLが存在するとき、指定したURLを検索エンジンに宣言することです。
ブログやホームページで独自のドメインを取得したとき、wwwの有無やhttp/httpsなど2つのURLを使用できます。
しかし、複数のURLがあると、SEOの観点から「重複したコンテンツ」とみなされ、上位表示がされにくくなります。

Google評価にも影響するからぜひとも設定しておきたい!
.htaccessのルール
.htaccessを書くためには、以下のルールを把握しておきましょう。
- 文字コードは「UTF−8」(BOMなし)にする
- 改行するときはLFを使用する
- 文章の最後に改行をいれる
- ファイル名は「.htaccess」にする

ルールを守らなかったらどうなるんだ?

エラーが発生する可能性がある!必ずルールをおさえておこう!
.htaccessファイルの書き方
具体的な書き方の例をご紹介します。
リダイレクト
1Redirect permanent / リダイレクト先のURL
転送前のURLにアクセスがあれば「リダイレクト先のURL」に自動で転送されます。
BASIC認証
1AuthUserfile /ルートディレクトリからのパス/.htpasswd
2AuthGroupfile /dev/null
3AuthName "Please enter your ID and password"
4AuthType Basic
5require valid-user
BASIC認証をかける場合、.htaccessファイルに加えて「.htpasswd」というファイルが必要です。
.htpasswdには、BASIC認証のIDとパスワードを書き込む必要があります。
BASIC認証のIDとパスワードは、以下のような生成ツールなどを用いて作成するのがおすすめです。
カスタム404エラーページ
1ErrorDocument 404 /error/404.html
これで、404エラーが発生したとき、errorディレクトリの404.html
が表示されるようになります。
同様の方法で、404以外に、401/500エラーなども独自のページを表示させることが可能です。
IP制限、ホスト制限
1order deny,allow
2deny from all
3allow from 指定のIPアドレス
4allow from 指定のIPアドレス
5allow from 指定のホスト
この方法で、指定のIPアドレス/ホストからのみアクセスを許可できます。
また、1文目の「order deny,allow」を、「order allow,deny」とすることで、逆に指定のIPアドレス/ホストのアクセスを拒否できます。
URL正規化
1RewriteCond %{HTTP_HOST} !^www\.
2RewriteRule ^(.*) $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ファイルを作成する
まずは.htaccessファイルを作成する必要があります。
ファイル名を「.htaccess」にし、テキストエディタを使用して作成します。

.htaccessの書き方は先ほど解説した内容を参考にしてくれ!
サーバーにアップロードする
FTPソフトなどを用いて、.htaccessファイルをアップロードします。
注意点として、アップロードするディレクトリによって.htaccessファイルの有効範囲が異なります。
有効となる範囲は、アップロードしたディレクトリとその下層にあるディレクトリのみです。

設置場所について詳しくは次で解説するぞ!
.htaccessの設置場所
.htaccessファイルの設置場所は、設定したいディレクトリです。
たとえば、ホームページ全体に.htaccessの設定をしたい場合はホームディレクトリにアップロードします。
部分的に反映したい場合は、設定したいディレクトリにアップロードすると、そのディレクトリより以下の階層に反映されます。
ファイルは複数設置することが可能ですが、複数ある場合は下の階層にあるものが有効となるので注意が必要です。
.htaccessの注意点
.htaccessの注意点は、以下の3つです。
- .htaccessが利用可能か確認する
- 設置場所に間違いがないか確認する
- 設定した内容が反映されているか確認する

.htaccessの注意点について解説していくぞ!
.htaccessが利用可能か確認する
.htaccessを利用するにあたり、以下の条件を満たしているか確認する必要があります。
- Apacheを利用しているか
- .htaccessファイルの使用に制限がないか
Apache以外のWebサーバーソフトウェアを使用している場合、.htaccessファイルは機能しません。
まずはApacheを使用しているかの確認が必要です。
また、Apacheを使用していた場合でも、レンタルサーバーによってはデフォルトの設定で.htaccessを制限していることがあります。
契約前に確認しておくことをおすすめします。

まずはApacheを使用しているか確認しないといけないね。
設置場所に間違いがないか確認する
上記でも解説したように、.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ファイルは有効です。
設定方法はシンプルなので、記述ルールや設置場所に注意しながら自身でも活用してみてください。

.htaccessは一見難しく見えるが、理解すれば簡単に設定できる!
※記載内容は現在のサービスと異なる場合があります。最新の情報は公式サイトをご確認ください。