.htaccessと.htpasswdでアクセス制限をかける方法

.htaccessでアクセス制限をかけるには、.htaccessの他に「.htpasswd」というファイルが必要になり、下記の3つの手順が必要です。

1. まず、アクセス制限したいディレクトリのパスを調べる

.htaccessに、アクセス制限したいディレクトリのパスを記述しなければならないので、その調べ方のメモ(.htaccessの書き方は後述)。

下記のソースをphpファイルでパスを調べたい場所にアップして、そのphpファイルにアクセスすると、出てきます。

BASIC認証(.htaccess)設定方法を参考にしました。

<?php
	$cwd = getcwd();
	$reqfile = strrchr($_SERVER["REQUEST_URI"], "/");
	$urilen = strlen($_SERVER["REQUEST_URI"]);
	$reqfilelen = strlen($reqfile);
	$reqdir = substr( $_SERVER["REQUEST_URI"], 0, $urilen - $reqfilelen );
	$current = $_SERVER["HTTP_HOST"] . $reqdir;
	echo "<p>ディレクトリの絶対パス:$cwd/</p>";
?>

2. .htaccessの設定方法

下記のように記述したファイルを「.htaccess」という名前でサーバーに設置します。

AuthType Basic
AuthName "Input your ID and Password."
AuthUserFile /アクセス制限をかけたいディレクトリのパス/.htpasswd
require valid-user

※「アクセス制限をかけたいディレクトリのパス」の部分には、上述の「1」で調べたパスを記述。

3. .htpasswdの設定方法

下記のサイト等で、パスワードを生成出来るので、出て来た文字列を「.htpasswd」という名前でサーバーに設置します。

htpasswd用パス作成ツール – phpspot

4. 最後に

いちいちファイルをつくるのは面倒くさい!という方はこちらをダウンロードして使ってください。

ダウンロード

【ファイル内容】
■path.php
アクセス制限をかけたいディレクトリにアップして、ブラウザでpath.phpにアクセスするとディレクトリのパスが表示されます。

■htaccess
path.phpにアクセスして出て来た文字列をコピペしてサーバにアップしてください。アップした後は、ファイル名の先頭に「.」(ドット)を入れてください。

■htpasswd
中身は空です。htpasswd用パス作成ツール – phpspot等を使って出て来た文字列をコピペしてサーバにアップしてください。アップした後は、ファイル名の先頭に「.」(ドット)を入れてください。

※ご利用は自己責任でお願いします。

>お仕事中の気分転換にこちらもどうぞ。

9月 22, 2011 | No Comments

Comments

Leave a Reply