【初心者向け】.htaccessの使用法まとめ

.htaccessの使用法をまとめてみました。僕自身が初心者なので、できるだけ噛み砕いて書いてみたつもりです。

Basic認証やリダイレクト、IP制限を設定する際の参考にしていただければ幸いです。

 

スポンサードサーチ

.htaccessとは

Webサーバーをディレクトリ単位で制御するためのファイル。Apache (アパッチ) などのソフトウェアが使用されている環境で、 使用することができます。

具体的にどんなことができる?

パスワードの設定(Basic認証)

特定のフォルダに対して、IDとパスワードを使ってログインしないと閲覧できないようにする場合に設定します。

 

アクセス制限

特定のIPアドレス又はドメインのみアクセス許可(または拒否)を設定したい場合に使用します。

 

Webページのリダイレクト

例えば、サイトの引越しをした時、旧サイトのURLから新サイトのURLに自動的に誘導する際に使用します。

などなど

 

スポンサードサーチ

使用条件

Apache(アパッチ)」と呼ばれるソフトウェアが使用されているWebサーバーで、サーバ管理者が「.htaccess」ファイルの設置を許可していれば使用できます。

レンタルサーバーは大体使用できます。

 

使用方法

パスワードの設定(Basic認証)

1、パスワードを設置したいフォルダに「.htaccess」「.htpasswd」2つのファイルを設置

2、.htaccessに下記の内容を記入する

AuthName “ユーザー名とパスワードを入力してください”
//表示させたいメッセージを記入します。

AuthUserFile /home/user/test … /.htpasswd
//該当するディレクトリを記入します。

AuthType Basic
//認証方式を記入します。
//Apacheで利用可能な認証方式は、基本認証(Basic)かダイジェスト認証(Digest)です。

require valid-user
//認証が通った全ユーザーに対してアクセスを許可する場合

Require user masuke osakataro tanaka
//アクセスを許可するユーザーを限定する場合
//名前を空白で区切ります

 

3、.htpasswdを設置

.htpasswdには、下記のような内容を記入します。

masuke:123456789

osakataro:987654321

tanaka:abcdefghi

//「ユーザーID:パスワード(暗号化)」

 

ユーザーIDとパスワードを簡単に作成するサイトは数多くあります。

必要な場合は、「Basic認証 パスワード作成」などで調べると良いかと思います。

 

アクセス制限

フォルダを制限したい場合

1、アクセス制限を行いたいフォルダに「.htaccess」を設置します。

2、「.htaccess」に下記の内容を記載します。

「特定のIP・ドメインのみアクセスを制限したい場合」

order deny,allow //デフォルトは許可

deny from viral-community.com //このドメインからは拒否

deny from XXX.XXX.XXX.XXX  //このIPからは拒否

 

「特定のIP・ドメインのみアクセスを許可したい場合」

order allow,deny //デフォルトは拒否

allow from viral-community.com //このドメインからは許可

allow from XXX.XXX.XXX.XXX //このIPからは許可

 

「order」は後ろに書いた方の設定がデフォルトになります。

「order」の後に下記の内容を書けば、設定を変えることもできます。

allow from all  //全て許可

deny from all  //全て拒否

 

ファイル単体の制限をしたい場合

<files htaccess-test.html>

order deny,allow

deny from all

allow from XXX.XXX.XXX.XXX
</files>

 

Webページのリダイレクト

ファイルごとのリダイレクト

1、リダイレクトを行いたいファイルがあるディレクトリに「.htaccess」を設置します。

2、「.htaccess」に下記の内容を記載します。

RewriteEngine on

RewriteRule ^test.html$ https://msdkisk.info/test.html [L,R=301]

//「test.html」にアクセスしたら、「https://msdkisk.info/test.html」へ301リダイレクトする設定です。
//Lは「この処理はここで終了」という意味
//R=301は「301リダイレクトを行う」という指定
//Rだけだと、302リダイレクト(URLが一時的に変更された場合の転送処理)になります

 

フォルダごとのリダイレクト

1、リダイレクトを行いたいディレクトリに「.htaccess」を設置します。

2、「.htaccess」に下記の内容を記載します。

RewriteEngine on

RewriteRule ^test(.*)$ /topics$1 [L,R=301]

//「test ディレクトリ」にアクセスした場合、「topicsディレクトリ」へ「301リダイレクト」する設定です。

 

httpからhttpsへのリダイレクト

1、SSLを使いたいディレクトリに「.htaccess」を設置します。

2、「.htaccess」に下記の内容を記載します。

RewriteEngine on

RewriteCond %{HTTPS} off

RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301]

//HTTPSがoffの場合 → HTTPのアクセスなのでSSL(HTTPS)でリダイレクト

 

スポンサードサーチ

まとめ

普段、Basic認証くらいして使ってなかったですが、htaccessって便利なんですね。

これも使いこなせるように積極的使っていこうと思います。