.htaccessについて
.htaccessについて
「.htaccess」は、ApacheなどのWebサーバで使用できるWebサーバの動作を、ディレクトリ単位で制御するためのファイルです。
具体的には、CGIやSSIなどを実行するための宣言(命令)や、拡張子ごとにファイルタイプを指定するMIMEタイプの設定、ユーザ認証、IPアドレスやドメイン単位でのアクセス制限などを書き込むことができます。
ただしサーバーでBASIC認証(UNIX標準認証)が許可されてない場合は、この方法は使用出来ません。
パスワードファイルを作成
まず、パスワードファイルを作成します。パスワードファイルの形式は、「ユーザー名:暗号化パスワード」となります。
以下にファイル名「.passwd」でユーザ名「uguisu」パスワード「hoge」として作成したデータの例を示します.
.passwd
uguisu:
zAnwt0.4Kc37k
暗号化パスワードを生成するには、Linux/UNIX ユーザの場合は「htpasswd」と言うコマンドを用いて可能です。
.htaccessファイルの記述
制御したいフォルダに「.htaccess」と言うファイル名で以下のように記述して下さい。
AuthType Basic
AuthUserFile /home/hoge/.passwd AuthGroupFile /dev/null AuthName"Enter password"
<Limit GET POST>
require valid-user</Limit>
2行目に、IDとパスワードの組が入ったテキストファイルのフルパスを指定しています。
require valid-user はパスワードファイルに書いたユーザーはすべて許可する設定です。
そこを repuire user username と書くなら username の人については入室を許可する設定となります。
ファイルの末尾には改行が必要です。もし改行文字がなければ正しく動きません。
なお、ダイアログの表示は行われるがパスワードが通らないと言う人がいます。その場合はパスワードファイルの絶対パス指定を誤っていると考えられます。
.htaccess の詳細設定
重複ディレクトリに対してリダイレクトしたい場合
RewriteEngine On RewriteBase / RewriteCond %{REQUEST_URI} !hoge/.*$ RewriteRule ^(.*)$ hoge/$1 [R,L]
2行目:書き換えのベースとなるパスはドキュメントのルートディレクトリ
3行目:リクエストのURLにhoge/以下がない時に下のルールを適用する。(ループ防止)
4行目:/以下の全てのリクエストを、/hoge/以下に書き換える。
末尾のRは一時的な移動(レスポンスコード 302)
ここをR=310にすると永久的な移動(レスポンスコード 301、検索エンジンも引き継がれる)
RewriteEngine on RewriteCond %{HTTP_HOST} ^www.uguisu.skr.jp RewriteRule (.*) http://uguisu.skr.jp/$1 [R=301,L] RewriteEngine on RewriteCond %{THE_REQUEST} ^.*/index.html RewriteRule ^(.*)index.html$ http://uguisu.skr.jp/$1 [R=301,L]
ディレクティブ「RewriteCond」は、RewriteRule を実行するための条件を定義するための記述です。
RewriteEngine on RewriteCond %{REQUEST_URI} !http://xxxxxx.com/.*$ RewriteRule ^/?nikki/?(.*) http://xxxxxx.com/nikki/$1 [R=301,L]
オススメ書籍
HTML5、CSS3、JavaScript等の学習に役立つ書籍を紹介します。