.htaccessとは・・・Webサーバーに「Apache」を用いている場合に、利用できるファイルになります。
サイトの管理者が、「Apache」の各種設定や制御をおこなえるようにしたファイルで、ディレクトリ単位で設置・設定がおこなえます。
.htaccessが、特定のディレクトリに設置されると、「.htaccess」内に記述されている内容が、設置されたディレクトリ内とその下層のディレクトリ内に対して適用される。
また、例えば「main/contents/test/」といった階層のディレクトリがあり、「.htaccess」をcontentsディレクトリとtestディレクトリへ設置したとします。
この時、testディレクトリの設定は、同ディレクトリへ設置した「.htaccess」の内容が優先的に適用されます。
※「Apache」とは・・・世界中でもっとも使われているWebサーバ(ソフトウェア)であり、無料(フリー)で利用できるので、個人から企業まで幅広く使用されています。
また、(当サイトのように)レンタルサーバーを利用している方が対象ですが、ほぼ全てのレンタルサーバーでは、この「Apache」を採用しています。
そして、「.htaccess」の設定も(大体が)できるようになっているので、ぜひ当記事を読んで「.htaccess」の理解を深めてください。
※レンタルサーバーについては、こちらで解説しています→レンタルサーバーを選定する際の9つの軸で、3つのおすすめサーバーを比較してみる
今回の記事では、この「.htaccess」で、できる事と設定手順について順に解説していきます。
以下、目次になります。
- .htaccessファイルの作り方と設置手順について
- .htaccessで、できる事と設定手順のまとめ
.htaccessファイルの作り方と設置手順について
当章では、.htaccessファイルの作り方と設置手順について解説していきます。
まず、ローカル環境で「.htaccessファイル」を作成する際、Windows環境では、「.htaccess」というネーミングでファイル作成ができないので、「●●●.htaccess」というファイルを作成します(後で、名前は「.htaccess」へ変更します)
【以下、作成例】
作成したら、次はこのファイルを「メモ帳」などのエディタで開いてください(下図例)
エディタで開けたら、Apacheで制御・設定したい事を記述していきます(こちらは次の章で解説しています)
記述が終わったら、内容を保存して、「htaccess」ファイルをサーバー(該当のディレクトリ)へ、FFFTPなどの「FTPツール」を利用してアップロードしてください(下図参考)
アップロードできたら、「●●●.htaccess」の ”●●●”を消して、ファイル名を「.htaccess」に変更してください(下図参考)
以上です。
次は、具体的な設定手順について解説していきます。
.htaccessで、できる事と設定手順のまとめ
当章では、.htaccessでおこなえる事を、代表的な4つの項目に分けて、順に設定手順を解説していきます(以下)
-
【IDとパスワード認証によるアクセス制限】
例えば、特定のページ(又はディレクトリ)を閲覧するには、IDとパスワードを用いてログインしないと閲覧できないようにしたい場合に利用します。
こちらを設定するには、「.htpasswd」というファイルも必要になります(作成手順に関しては、上述している.htaccessファイルの作成手順と同じです)
以下、設定手順になります。
まず、「.htaccess」に下記内容を記述してください(赤色部分は、独自に設定してください)
AuthName “ユーザー名とパスワードを入力してください”
AuthUserFile /home/user/test … /.htpasswd
AuthType Basic
require valid-user上記の、「AuthUserFile」に記述しているパスに、「.htpasswd」を配置する必要があります。
次に、「.htpasswd」に下記内容を記述してください。
user1:68ASKJk2UWcR6
user2:9if0dJHG6sER上記は、「A:B」という構成になっていて、A がユーザーID、B がパスワードになります。
パスワードには、暗号化された情報を記載します。暗号化された情報は、下記ページで作成する事ができます。
上記リンク先にアクセスると、下図のような画面が表示されるので、パスワードを入力して、「暗号化」ボタンをクリックしてください。すると暗号化された情報が右上に表示されます(下図参考)
こちらで、パスワードの暗号化された情報を取得して、設定してください。
また、1アカウント=1行なので、複数アカウント作りたい場合は、複数行に指定します。
記述が終わったら、「.htaccess」で指定している場所へ「.htpasswd」をアップロードしてください。
以上です。
-
【IP or ドメイン指定によるアクセス制限】
こちらは、特定のIPアドレス又はドメインのみアクセス許可(あるいは拒否)をしたい場合に設定します。
以下に、「.htaccess」の記述例を示します(2例)
・「特定のIP・ドメインのみアクセスを制限したい場合」(赤色部分は、独自に設定してください)
order allow,deny
allow from all
deny from viral-community.com
deny from 130.90.50.120・「特定のIP・ドメインのみアクセスを許可したい場合」(赤色部分は、独自に設定してください)
order deny,allow
deny from all
allow from viral-community.com
allow from 130.90.50.120上記、「deny」がアクセス制限で、「allow」がアクセス許可を指定する機能になります。
以上です。これで、「.htaccess」を配置したディレクトリ(とディレクト内のファイル)とそれより下層のディレクトリ・ファイルに対して、アクセス制限(許可)設定をすることができます。
また、ファイル単体に対して指定したい場合は、下記のように記述してください。
赤色部分にファイル名を指定します。<files test-file.html>
order deny,allow
deny from allallow from 103.10.150.0
</files> -
【ディレクトリ内のファイル一覧表示の中止】
こちらは、ディレクトリ構造が外部に公開される事によるセキュリティ的な懸念を無くすための機能になります。
通常、下図のように「スラッシュ(/)」 で終わるアクセスがあったときに、(同ディレクトリ内の)「index.html」が代替して呼ばれます。
ですが、index.htmlファイルが見つからなかった場合に、下図のようなディレクトリ内のファイル一覧が表示されてしまいます。
これは、第三者によるディレクトリ構造の特定に繋がってしまい、セキュリティの観点で表示すべきではありません。
そこで、この問題を解決してくれるのが「.htaccess」です。
「.htaccess」に下記を記述するだけで、上記のようなディレクトリ内のファイル一覧が表示されることは無くなります。
Options -Indexes以上です。この設定をした「.htaccess」は、ドメインのルートディレクトリにアップロードしておけば良いです。
-
【特定ページ(又はディレクトリ)への、リダイレクト設定】
当項目では、ページ(又はディレクトリ)に対して、リダイレクト設定をする手順を解説していきます。
リダイレクトとは、例えば、サイト内に「Aページ」と「Bページ」があった場合、ユーザーが「Aページ」に訪れた際に、自動的に「Bページ」へ誘導される事を指します。
よくあるケースとしては、サイトのお引越しです。
「http://old.com」から「http://new.com」へ、お引越しする場合、
「http://old.com」のページに対して、リダイレクトの設定をしておく必要があります。
要は、訪問者に対して「新しいサイトはこっちですよ~」といった具合に、指定しておくのですね。
これで、ユーザーは古いサイトへアクセスしても、自動的に新しいサイトの方へ遷移するのです。
このように、特定のページ(又はディレクトリ)に対してリダイレクト設定をしたい場合も、「.htaccess」で解決することができます。
具体的な設定手順(記述内容)に関しては、こちらで解説しています→301リダイレクトについて、必要性と設定手順をまとめてみた
以上です。
.htaccessで、できる事というのは、他にも多数の項目がありますが、今回解説してきた事をおさえておけば、基本は大丈夫でしょう。
まとめ
今回の記事では、「.htaccess」について、できる事と設定手順について解説してきました。
上述している通り、「.htaccess」の利用用途としては、ユーザー認証やアクセス制限といったセキュリティ対策で用いられる事が多いです。
当サイトも、「.htaccess」を用いて、管理画面へのアクセス制限をしています。
「.htaccess」であれば、プログラミングの知識も入りませんので、比較的簡単にユーザー認証やアクセス制限をおこなう事ができます。
サイトを運営している方は、ぜひ「.htaccess」を設定して、セキュリティレベルを上げておいてください。
※別記事で、サイトの管理者がやっておくべき「セキュリティ対策」をまとめていますので、興味のある方は確認しておいてください→ハッキング対策まとめ!自分のサイトを守るためにやっておかなければならない10のこと