レンタルサーバー格安 サーバー管理マニュアル

トップページ  » 設定マニュアル  » .htaccessについて

.htaccessについて


.htaccessとは?

.htaccessファイルとは、Webサーバの動作をディレクトリ単位で制御が出来るファイルです。
拡張子でファイルタイプを設定したり、ユーザー認証、アクセス制限などの設定が可能です。
また、PHPの動作も設定する事も可能です。(一部設定出来ない項目もございます)

.htaccessファイルで設定した内容は、.htaccessファイルがあるディレクトリとそのサブディレクトリに有効です。
サブディレクトリにも.htaccessファイルを別に置くこともでき、この場合は両方のファイルの両方の設定内容が有効になります。
(矛盾するときはサブディレクトリの設定内容が優先されます)

初期状態では存在しませんので、作成して頂く必要があります。

.htaccessファイルの作り方

ファイルの中身は、テキストファイルです。
メモ帳などのテキストエディタで作成、編集ができます。

Windowsでは、「ドット」から始まるファイルを新規作成する事ができません。
一旦別の名前(htaccess.txtなど)でファイルを作成し、サーバーにアップロード後、FTPソフトなどで、ファイルを「.htaccess」に変更してください。

コメント行は?

行の先頭に「#」を記述すると、その行はコメントして扱われます。

.htaccessファイルの設置

設置場所は、「public_html」直下に配置してください。
そのドメイン全体に、.htaccessで設定した内容が有効になります。

あるフォルダのみ設定を行いたい場合は、そのサブフォルダに設置してください。
サブフォルダ配下で有効になります。

.htaccessファイルのパーミッション

HTMLファイルと同じ「644」に設定してください。
通常、アップロード後は、「644」になっているかと思いますので、特に変更する必要はございません。

設置したら「500 Internal Server Error」が発生?!

.htaccessファイルに記述方法の間違いなどエラーがあると、どのページにアクセスしても「500 Internal Server Error」が表示されてしまいます。
もう一度、記述に間違いがないか確認し、修正後、再度アップロードしご確認ください。

.htaccessファイルの設定例

では、実際に.htaccessファイルの設定例をご紹介します。

1)ディレクトリでアクセスがあった時のデフォルトファイルを変更する

http://www.exsample.com/ など「/」で終わるURLの場合、「http://www.exsample.com/index.html」が表示されるかと思います。
これは、「/」で終わる場合は、「index.html」ファイルがあれば表示するように設定しているからです。

レオサーバーでは、「/」で終わる場合、次の順序で表示するよう設定しています。
1.index.html  2.index.htm  3.index.cgi  4.index.shtml  5.index.php

例1)「main.html」があれば最初に表示するように変更してみます。
DirectoryIndex main.html index.html index.htm index.cgi index.shtml index.php

例2)「index.php」があれば、「index.html」より先に表示するよう設定
DirectoryIndex index.php index.html index.htm index.cgi index.shtml

2)拡張子「html」でも、PHPファイルとして動作するよう設定する

通常HTMLファイルに、PHPの<?php ~ ?>を書いても動作しませんが、以下を記述すると
PHPファイルとして動作するようになります。
AddHandler application/x-httpd-php .html .php
もしくは
AddType application/x-httpd-php .html .php

3)HTTPレスポンスヘッダの文字コードを設定する

初期ではレスポンスヘッダの文字コードは「none」になっています。
「UTF-8」以外にも、「Shift_JIS」「EUC-JP」なども設定ができます。
AddDefaultCharset UTF-8
もしくは、
AddType "text/html; charset=UTF-8" .html .php

PHPにて設定する場合は、
<?php
header("Content-type: text/html; charset=utf-8");

4)特定のIPからの接続を拒否する

初期ではレスポンスヘッダの文字コードは「none」になっています。
order allow,deny
allow from all
deny from XXX.XXX.XXX.XXX
IP「XXX.XXX.XXX.XXX」は、特定IPもしくはドメインです。ネットマスクも使用できます。
例1 XXX.XXX.XXX.XXX/24
例2 XXX.XXX.XXX.XXX/255.255.255.0

5)独自のエラー表示

ファイルが存在しないなどのエラーが発生した場合に、表示する画面が変更できます。
ErrorDocument 401 /error/401.html
ErrorDocument 403 /error/403.html
ErrorDocument 404 /error/404.html
ErrorDocument 500 /error/500.html

6)アクセス制限の方法

特定のフォルダにアクセスした際に、ユーザーID、パスワードで認証をかけることができます。
AuthUserFile /home/FTPユーザー名/public_html/フォルダ名/.htpasswd
AuthGroupFile /dev/null
AuthName "Input your ID and Password."
Authtype Basic
require valid-user
※)AuthUserFileは、絶対パスで記述します。
 「.htpasswd」のファイル名は、何でも大丈夫です。(慣用的にこのファイル名を使っています)
※)AuthNameには、表示するメッセージを設定します。
 日本語文字列を使用するとIE以外のプラウザでは文字化けするようです。半角英数字記号を使った方が良いかと思います。

.htpasswdファイル
user1:usTjXUi1eiWZI
user2:usjRS48E8ZADM
.htpasswdのパーミッションは「604」
.htpasswdは、改行コードで区切り、それぞれの行に「ID:暗号化したパスワード」と記述します。

暗号化したパスワードは、 ここ から、生成できます。
どうぞご利用ください。

7)リダイレクト

アクセスされたURLを、別のURLへ転送します。
Redirect permanent ディレクトリ名  http://XXX.XXX/

8)mod_rewrite

http://ドメイン名/ に来たアクセスを、URL「http://www.ドメイン名/」 に変えます。
RewriteEngine on
RewriteCond %{SERVER_PORT} ^80$
RewriteCond %{HTTP_HOST} ^(ドメイン名)(:80)?
RewriteRule ^(.*) http://www.ドメイン名/$1 [R=301,L]

9)PHPの設定ファイルの値を変更する

PHPの設定を、.htaccessで変更する場合、「php_value」「php_flag」を使用します。
php_value mbstring.language Japanese 言語指定
php_value mbstring.internal_encoding UTF-8 文字コード指定
php_flag short_open_tag on
もしくは、
php_flag short_open_tag 1
ショートタグ設定
文字列などを設定する場合「php_value」を使用し、フラグを設定する場合「php_value」を使用します。
設定出来ない項目もありますで、設定後、「phpinfo()」などで設定をご確認ください。

よくあるご質問FAQ

ご利用者様のご紹介、感想
レンタルサーバー格安 レオサーバーのキャンペーン情報


当サイトはGeoTrustのSSLを利用しており、お客様情報は保護されています。

レンタルサーバー格安 レオサーバーの運営会社「株式会社レグルス」