お問い合わせはこちら
WEB

【基本】.htaccessとは?何ができるの?書き方は?

公開
更新

ホームページを作成したことがある方なら、.htaccess(ドットエイチティアクセス)という言葉を聞いたことがあるでしょう。一方で、何か便利なことができるようだけれど専門用語が難しくて一体どんなものなのか分からないという方も多いのではないでしょうか。この記事では、そもそも.htaccessとは何かといった基本から設定方法まで簡単に解説しています。

.htaccessとは

.htaccessとはそもそも何?

.htaccessとはWebサーバーの基本的な動作を、ディレクトリ単位で制御するためのファイルです。Apacheをはじめとして、いくつかのWebサーバーに対応しています。レンタルサーバー等でホームページを公開する際にも、.htaccessによっていろいろな機能を実現できることから、どのように役立つか知っておきたいところです。

.htaccessで何ができるの?

それでは、.htaccessを使うことによって、具体的にどんな機能が使えるようになるのでしょうか。ここでは、様々な機能の中でも代表的なものを中心に簡単に紹介します。

【redirect】移転先のホームページへ訪問者を誘導する

ホームページを運営していると、ドメインやサイトの構造を変更することがあります。その際、移転前のページを見に来た訪問者を、移転先のページへスムーズに誘導しなくてはなりません。そんなときに便利なのが、「redirect」の設定です。

.htaccessでredirectを設定することによって、訪問者が古いページへ訪れた場合に、そのアクセスを自動的に新しいページへ転送することができます。訪問者の視点では、ブラウザに古いページが表示されると、それが移転先のページへ自動的に切り替わるといったイメージです。redirectを使ったホームページは、インターネット上に多く存在しますので、実際に設定が行われたページをご覧になったことがある方は多いのではないでしょうか。

redirect

redirectの設定を応用することで、たとえばホームページをSSLで暗号化した際に、「http://~」のURLにきたアクセスを、暗号化が有効な「https://~」のURLへ転送することもできます。

【BASIC認証】ホームページにID・パスワードによる認証を追加する

ホームページの一部もしくは全部のコンテンツを、社内や得意先だけなど限られた範囲にだけ公開したいといったケースがあるでしょう。そんなときに使えるのが.htaccessを使った「BASIC認証」の設定です。BASIC認証を使うと、ホームページにユーザー名・パスワードによるアクセス制限をかけることができます。

BASIC認証

【IP制限】ホームページにIPアドレスによるアクセス制限をかける

こちらも、ホームページへアクセスできる範囲を限定できる設定です。「BASIC認証」では、ユーザー名・パスワードによる制限だった一方、「IP制限」では文字通り接続元のIPアドレスによって制限を行います。

IP制限

たとえば社内で利用するホームページを、社内ネットワークの接続元IPアドレス(もしくはIPアドレス空間)からしかアクセスできないようにするといった設定が可能です。逆に、特定のIPアドレス(もしくはIPアドレス空間)からのアクセスを拒否することもできます。

その他にもできることは多い

.htaccessの設定の中でも、特によく使われる機能を選んで紹介しました。それ以外にも、.htaccessで実現できる機能は数多くあります。以下、その一部をリストアップしてみます。

・404エラー(存在しないURLへアクセスしてきたときのエラー)が発生した際に表示させるページを指定する

・ホームページのwwwの有り無しを統一する。(例:たとえば「wwwあり」に統一したい場合は、「https://example.jp/」というURLへアクセスがきたら、「https://www.example.jp/」へ転送する)

・特定のディレクトリにアクセスした際に、そのディレクトリ配下にあるファイルの一覧が表示されるのを禁止する

.htaccessの設定手順

.htaccessでどんな機能を実現できるかは分かりました。それでは、実際にどのように設定すれば使えるのでしょうか。以下、設定の手順を簡単に紹介します。

【1】.htaccessファイルを用意する

.htaccessを設定する際は、まず専用の設定ファイルを用意する必要があります。このファイルには、.htaccessで設定したい内容を全てまとめるわけです。具体的な書き方については後述します。

【2】.htacessファイルをサーバーにアップロードする

作成した.htaccessファイルを、FTPソフトなどを使ってサーバーにアップロードします。これによって、.htaccessファイルに記載した設定内容が実行されるようになります。

.htaccessの大まかな設定手順はこの2つだけです。そのため、あとは「どのようにファイルを用意するか」「.htaccessファイルを、どこに設置すればよいか」だけ分かれば、.htaccessを使いこなせるようになるでしょう。

.htacessを使う際に覚えておくべきポイント

.htaccessの設定手順については、分かりました。次に、.htaccessを設定する際に覚えておくべき2つのポイントを解説します。

.htacessファイルの書き方・作り方

.htaccessファイルは、Windowsの「メモ帳」などのテキストエディタで作成できます。また.htaccessファイルを作る際には、以下のルールを守ることが必要です。

・ファイル名は「.htaccess」にする。(.txtなどの拡張子はつけない)
・文字コードは「UTF-8」(BOMなし)、改行コードは「LF」にする。※通常テキストエディタでファイルを保存する際に指定します。
・文章の最後に必ず改行を入れる

次に.htaccessのファイルの書き方ですが、設定したい内容ごとに構文が決まっています。ここでは、特によく使う構文をピックアップして紹介しますので、必要な箇所を書き換えてご利用ください。

redirectの書き方の例

【サイト全体を「https://example.jp/」へ移転する場合】

Redirect permanent / https://example.jp/

移転元のページへ来たアクセスを、全て「https://example.jp/」へ転送する場合の設定方法です。

BASIC認証の書き方の例


Deny from all

AuthType Basic
AuthUserFile /フルパス/.htpasswd
AuthName “Please enter your ID and password”
AuthType Basic
require valid-user

「フルパス」と書かれた部分は、後述する「.htpasswd」ファイルの絶対パスに書き換えてください。BASIC認証を設定する場合は、認証の際に使うID・パスワードをまとめた「.htpasswd」ファイルを作成して、サーバーにアップロードすることが必要です。.htpasswdファイルは.htaccessファイルと同じように、以下のようにテキストで必要事項を記入して保存します。

書くべき内容は、以下のみです。

ユーザー名:パスワード
ユーザー名:パスワード
ユーザー名:パスワード

1行にユーザー名・パスワードをまとめて記載し、必要な分だけ改行して増やします。たとえば、ユーザー名が「user」、パスワードが「pass」であれば、以下のような記載となります。

user:3OWtWH813AhW.

このときパスワード(今回は「pass」)の文字列は、暗号化されています。暗号化の方法はいくつかありますが、以下のような専用のサイトを使うのが簡単です。

ファイル生成(作成)

https://www.luft.co.jp/cgi/htpasswd.php

IP制限

【特定のIPアドレスからのアクセスのみ許可したい場合】

order deny,allow
deny from all
allow from アクセスを許可するIPアドレス

「アクセスを許可するIPアドレス」のところに、該当するIPアドレス(IPアドレス帯)を入力します。なおIPアドレスが複数ある場合は、「allow from」の行をその分だけ追加してください。

【特定のIPアドレスからのアクセスを拒否したい場合】

order allow,deny
allow from all
deny from アクセス拒否したいIPアドレス

「アクセス拒否したいIPアドレス」のところに、該当するIPアドレス(IPアドレス帯)を入力します。IPアドレスが複数ある場合は、「deny from」の行をその分だけ追加してください。

webツールを使って簡単に記述する方法もある

ご覧の通り、.htaccessファイルの構文は複雑です。インターネット上には、必要事項を記入するだけで、簡単に.htaccessファイルに書くべき内容を自動生成してくれるwebツールもありますので、使ってみてもよいでしょう。

<便利なwebツールの例>

.htaccess Editor

https://www.htaccesseditor.com/

よく使うhtaccess作成(生成)| cman.jp

https://htaccess.cman.jp/

.htacessファイルの設置場所

.htaccessファイルは、設定を行いたいディレクトリにアップロードする必要があります。たとえば、「http://example.jp/」というホームページ全体に.htaccess の設定を行いたい場合は、「http://example.jp/」のホームディレクトリにアップロードします。これによって「http://example.jp/」以下の全てのディレクトリに設定が反映されます。

一方「http://www.example.jp/blog/」というディレクトリに.htaccessの設定を行いたい場合は、「blog」というディレクトリにファイルをアップロードしてください。この場合、「http://example.jp/shop/」や「http://example.jp/item/」など、その他のディレクトリには.htaccessの設定は反映されません。

WordPressで.htaccessを使う際に注意すべきポイント

WordPressを使って、ホームページを運営されている方も多いでしょう。WordPressを利用している場合でも、.htaccessの使い方や設定方法は変わりませんが、いくつか注意点があります。以下、その注意点について解説します。

WordPressでの.htaccessの設置場所

WordPressを利用している場合、.htaccessはあらかじめ作成されています。
.htaccessが設置されている場所は、WordPressをインストールしたルートディレクトリです。

.htaccessファイルが見つからないときには?

FTPソフトでサーバーに接続しても、FTPファイルが表示されない場合があります。このとき、考えられる主な原因は以下の2つです。

・.htaccessが表示されない設定になっている
・.hatccessが作成されていない

以下、1つずつ解説します。

.htaccessが表示されない設定になっている

「.htaccess」のように、ファイル名の先頭に「.」がつくファイルは「隠しファイル」です。隠しファイルとは、名前の通り隠されたファイルのことで、.htaccessのようにサーバーの動作に重要な影響を及ぼすファイルが隠しファイルに設定されることがあります。

FTPソフトによっては、初期設定で隠しファイルが表示されないようになっているので、見つからないときはソフトの設定を見直してみましょう。

たとえばWindowsでよく利用されている定番のFTPソフト「FFFTP」の場合、ソフトウェア起動後、「表示」→「.で始まるファイルを表示」にチェックを入れると.htaccessが表示されるようになります。

.hatccessが作成されていない

FTPソフトで隠しファイルを表示する設定にしても.htaccessファイルが見つからない場合は、WordPressのインストール時に作成されていなかった可能性があります。このとき、以下の順序で.htaccessファイルを自動生成することが可能です。

1) FTPソフトでサーバーにアクセスし、WordPressがインストールされたディレクトリのパーミッションを「755」に変更します。
※「FFFTP」をご利用の場合、対象のフォルダで右クリック→「属性変更」で以下画面が表示されます。

「現在の属性」に「775」と入力し、「OK」をクリックすればパーミッションの設定変更が完了です。

2) 次にWordPressの管理画面へログインし、「設定」→「パーマリンク設定」と進みます。

WordPressの管理画面

上記画面が表示されたら、何も設定を変更せず「変更を保存」ボタンをクリックすると、.htaccessファイルが自動的に生成されます。

まとめ

.htaccessの設定が分かれば運営するホームページにて、パスワードやIPアドレスによるアクセス制限や、アクセスの転送(リダイレクト)といった便利な設定を様々行うことができます。一見、難しい専門用語にも見えますが設定自体はシンプルなので、コツさえ把握すればホームページ制作の初心者の方でも難しくはありません。ホームページを運営していく中で役に立ちそうなシーンがあれば、是非活用してみてはいかがでしょうか。

最大1ヶ月分が無料で利用できる!

「WordPressを導入したい」「色々な用途に使いたい」という人に!

なんでもできるKAGOYAのレンタルサーバー

法人利用率80%、多数の導入実績。
自社国内データセンターで25年以上の実績。障害に強いサーバー構成で、多くの法人様から選ばれています。
サーバー移転に伴う作業も専門スタッフにおまかせ下さい。