【Guide】.htaccessを使ってみよう❗️ - web design lab
にほんブログ村 デザインブログ Webデザインへ PVアクセスランキング にほんブログ村

【Guide】.htaccessを使ってみよう❗️


【Guide】.htaccessを使ってみよう❗️

こんにちは(・∀・)

.htaccessとはWebサイトに関する設定や制御のためのファイルです。.htaccessで設定した内容は設置したディレクトリ(各フォルダ)以下に適用されます(ホームディレクトリに設置した場合はそのWebサイト全体に適用されます)。サーバによっては.htaccessの設置を許可していない場合がありますのでご確認ください。

.htaccessを使ってみよう!

ここではWeb制作の現場でよく使われる設定を紹介します。

.htaccessファイルは、初めに、ファイル名htaccess.txtとして保存します。サーバーへアップしてから.htaccessに名前を変更します。また、既に.htaccessファイルを設置している場合は既存の.htaccessファイルに追記してください。.htpasswdも同様にしてください。

DirectoryIndexを設定する

URIの最後が「/」でアクセスした場合に表示させるファイル名の優先順位を指定できます。


DirectoryIndex index.html index.htm

上記の場合、最初にindex.htmlをさがしに行って、あれば表示されます。なければ次にindex.htmをさがしに行きます。ファイル名はindex以外も可。


DirectoryIndex index.html index.htm index.shtml index.shtm index.php index.cgi index.pl
ファイル一覧を表示させない

URIの最後を「/」でアクセスした場合、表示させるファイルindex.html等がないとディレクトリ内のファイルが一覧で表示されてしまうことがあります。その一覧表示をしないようにするための設定です。


Options -Indexes

この設定は+ExecCGIや+Includes等との同時指定もできます。


Options +ExecCGI +Includes -Indexes
アクセス制限(一部のユーザーを拒否)

order allow,deny (許可・一部拒否)
allow from all (全てを許可)
deny from example.com (example.comを拒否)
deny from .com (.comを拒否)
deny from 123.45. (123.45.で始まるIPアドレスを拒否)

特定ホストからのアクセスを拒否する設定です。拒否したいホスト名またはIPアドレスをdeny fromのあとに指定します。


order allow,deny
allow from all
deny from example.com
deny from .com
deny from 123.45.
アクセス制限(一部のユーザーを許可)

order deny,allow (拒否・一部許可)
deny from all (全てを拒否)
allow from example.com (example.comを許可)
allow from .com (.comを許可)
allow from 123.45. (123.45.で始まるIPアドレスを許可)

特定ホストからのアクセスだけを許可する設定です。許可するホスト名またはIPアドレスをallow fromのあとに指定します。


order deny,allow
deny from all
allow from example.com
allow from .com
allow from 123.45.
エラーメッセージを変更

ErrorDocument 401 /401.html (認証失敗)
ErrorDocument 403 /403.html (アクセス権限がない)
ErrorDocument 404 /404.html (ファイルが見つからない)
ErrorDocument 500 /500.html (サーバーエラー)

Not FoundやForbidden等のエラーメッセージをオリジナルに変更することができます。パスはファイルの置き場所にあわせてください。サンプルコードではerrorディレクトリの中に403.htmlと404.htmlが格納されています。.htaccessでエラーメッセージの変更を設定したら、それぞれのHTMLファイルを作成してください。


ErrorDocument 403 /error/403.html
ErrorDocument 404 /error/404.html
リダイレクト

Redirect permanent /old/ http://example.com/new/ (301)
Redirect temp /old/ http://example.com/new/ (302)

http://example.com/old/にあるファイルへアクセスがあった場合、http://example.com/new/へリダイレクトさせる場合は下記サンプルコードのように書きます。


Redirect permanent /old/ http://example.com/new/
mod_rewriteによるリダイレクト

RewriteEngine on
RewriteCond
RewriteRule

リダイレクトでwwwありwwwなしを統一させるには.htaccessファイルに次のように記述。


wwwありにする場合
RewriteEngine on
RewriteCond %{HTTP_HOST} ^example\.com
RewriteRule ^(.*)$ http://www.example.com/$1 [R=301,L]

wwwなしにする場合
RewriteEngine on
RewriteCond %{HTTP_HOST} ^www.example\.com
RewriteRule ^(.*)$ http://example.com/$1 [R=301,L]
CGIを使えるよう設定する

Options +ExecCGI (CGIの実行)
AddType application/x-httpd-cgi .cgi (拡張子が「.cgi」のファイルをスクリプトとして認識させる)
AddType application/x-httpd-cgi .pl (拡張子が「.pl」のファイルをスクリプトとして認識させる)

次のように設定することもできます。


AddType application/x-httpd-cgi .cgi .pl

Options +ExecCGI
AddType application/x-httpd-cgi .cgi .pl
SSIを使えるよう設定する

Options +Includes (SSIの実行)
AddType text/x-server-parsed-html .shtml (拡張子が「.shtml」のファイルでSSIを有効にする)
AddType text/x-server-parsed-html .shtm (拡張子が「.shtm」のファイルでSSIを有効にする)
AddType text/x-server-parsed-html .html (拡張子が「.html」のファイルでSSIを有効にする)

次のように設定することもできます。


AddType text/x-server-parsed-html .shtml .shtm

Options +Includes
AddType text/x-server-parsed-html .shtml .shtml .html .htm
Basic認証・パスワード制限の設定

.htaccessによるパスワード制限です。Basic認証をするには.htaccess(Basic認証の内容が書かれた.htaccessファイル)と、.htpasswd(IDとパスワードが収納されたファイル)の2つのファイルが必要です。パスはサーバのフルパスです。通常のパスではありません。.htpasswdはDocumentRootより上に設置してください。/home/アカウント名/public_html/がDocumentRootの場合、/home/アカウント名/内に.htpasswd設置してください。パーミッションは604にします。


.htaccessファイル
AuthUserFile /home/アカウント名/htpasswd格納フォルダ/.htpasswd
AuthGroupFile /dev/null
AuthName "Please enter your ID and password"
AuthType Basic
require valid-user

次にtelnetでAuthUserFileで指定したパスまで移動してhtpasswdコマンドでパスワードファイル.htpasswdを作成します。ここではユーザ名guest、パスワードguestで作成します。


% htpasswd -c .htpasswd guest
Adding user guest
New password: guest (入力中画面には表示されません)
Re-type new password: guest (入力中画面には表示されません)

これでユーザ名、暗号化されたパスワードが.htpasswdファイルに登録されました。


.htpasswdファイル
guest:sauXdrsi8NNkc

パスワードを追加で設定する場合、.htpasswdコマンドの-cオプションは必要ありません。

このページはWebサイト制作者向けです。サーバ管理者の方はApacheマニュアルを参考に。セキュリティにはくれぐれもご注意ください。です^^


にほんブログ村 デザインブログ Webデザインへ PVアクセスランキング にほんブログ村