.htaccess

個人法人共用マネージドVPS専用代理店

アクセス制限などが実現できる .htaccess ファイルについてご案内いたします。

.htaccessファイルについて

.htaccessファイルを利用すると、「ユーザー名とパスワードによるアクセス制限(ベーシック認証)」、「MIMEタイプの新規追加」、「ファイル名一覧表示のON/OFF」、「PHPの動作設定変更」など、ウェブサーバーの動作をカスタマイズすることが出来ます。

以下に.htaccess の設定方法をご案内しておりますのでご参考下さい。

ユーザー名とパスワードによるアクセス制限(ベーシック認証)の設置方法

ユーザー名とパスワードによるアクセス制限については、ファイルマネージャーをご利用頂くことで、ブラウザー上から簡単に設置することができます。通常はファイルマネージャーをご利用ください。下記は、上級者向けにsshまたはFTPを利用して手動で設置する方法です。

htaccess.txt というファイル名で、下記の内容のファイルを作成し、ユーザー名とパスワードによるアクセス制限をかけたいディレクトリにFTPでアップロードします。

  AuthUserFile /ホームディレクトリ名/.htpasswd
  AuthGroupFile /dev/null
  AuthName "Login"
  AuthType Basic
  
  require valid-user
  

実際のホームディレクトリ名に関しましては、弊社よりメールにてお送りしている「レンタルサーバー登録通知書」で確認出来ます。例えば、AuthUserFile /home/user/user00001/.htpasswd と記入します。

アップロード後、 FTP上で htaccess.txt の名前を .htaccessに変更します。

パスワードファイルをFTPで作成する方法

htpasswd.txtというファイル名でテキスト文章を作成し、所定のハッシュ方式(MD5方式)でエンコードしたパスワードを記入してください。エンコードには下の変換フォームをご利用ください。

パスワード変換フォーム

設定をするユーザー名とパスワードを入力し、「パスワード変換」を押してください。

ユーザー名:
半角英数字、アンダーバー(_)、ドット(.)、ハイフン(-) 利用可能です。(1文字以上32文字以内)

パスワード:
半角英数字のみ利用可能です。(4文字以上32文字以内)

変換結果は右に表示されます:[                ]

パスワードファイルをsshで作成する方法

sshでtelnet/sshサーバーにログインします。 → SSHのログイン方法

以下のパスワード発行コマンドを実行します。

$ /usr/local/etc/httpd/bin/htpasswd -c .htpasswd ご希望のログイン名
[ご希望のパスワードを2回入力する]

以上で設定が完了です。ブラウザーを起動し、設置したフォルダーにアクセスして、IDとパスワードの入力画面が表示されるか確認します。ログイン名とパスワードは、パスワード発行コマンド上で入力したものになります。

さらに、別のログイン名を追加発行する場合は、下記のコマンドを実行します。( -c を省きます。)

$ /usr/local/etc/httpd/bin/htpasswd .htpasswd ご希望のログイン名
[ご希望のパスワードを2回入力する]
エラー画面の編集方法

ウェブサイトのエラー画面をカスタマイズすることが可能です。例えば、リンク切れやURL打ち間違いによって、ファイルが無いという場合は下記のような「404 Not Found」のエラー画面が表示されます。

  • 図1.404 Not Foundのエラー画面
  • 404 Not Foundのエラー画面

これらのエラー画面の編集するには、エラーコード(上記の例では 404) ごとに、表示させたいエラー画面のhtmlファイル(例:error.html)をお客様にてご用意ください。

エラー画面の編集に際し、.htaccessファイルの設定を間違ったり、存在しないhtmlファイルをError Documentに指定しますと、無限ループが発生してサーバーに非常に負荷がかかる恐れがありますので、ご注意ください。

エラー画面を絶対パスで指定

エラー画面のhtmlファイルを、エラー画面を編集したいドメインの任意のディレクトリにアップロード頂き、その後、下記の内容を参考に.htaccessファイルを作成頂き、任意のディレクトリにアップロードください。

ErrorDocument 404 /error.html
  • 404の部分がエラーコードになります。
  • 「/error.html」の部分には、実際に作成したhtmlファイル名のURL上での絶対パスを指定してください。
エラー画面をURLで指定

URL上での絶対パスを指定できないような、.htaccessとは別階層のディレクトリにあるファイルや、外部サーバーのページを指定したい場合は、エラーページのURLによる設定が可能です。下記の内容を参考に.htaccessファイルを作成頂き、任意のディレクトリにアップロードください。

エラーページの指定方法につきましては、特に問題が無い限り、上の「エラー画面を絶対パスで指定」をお奨めいたします。

ErrorDocument 404 http://www.example.com/error.html
  • 「http://www.example.com/error.html」の部分には、特定のエラーページURLをご指定ください。
mod_rewriteモジュールについて

mod_rewriteは、URIの動的な書き換えを実現するモジュールです。

.htaccess設置の流れ

htaccess.txtというファイル名で、下記の内容のファイルを作成または編集し、書き換えを行いたいディレクトリにFTPでアップロードします。

アップロード後、 FTP上で htaccess.txtの名前を .htaccessに変更します。

ブラウザーを起動し、設定内容通りの動作が行なわれているか確認します。

.htaccessの設定例は以下をご確認ください。

test.htmlへのアクセスで、test2.htmlの内容を表示する。
RewriteEngine ON
RewriteRule ^test\.html$ test2\.html [L]
静的なリンクに見せかけて、動的なURLを生成する

http://www.sppd.ne.jp/index/****/ へアクセスした際、 http://www.sppd.ne.jp/index.php?mode=**** のようにPHPにパラメータを渡す。※****はアルファベットと半角英数とします。

RewriteEngine ON
RewriteRule ^index/([0-9a-z]*)/$ index.php?mode=$1 [L]
ウェブサイト全体をHTTPSに変更する(専用SSLご利用者様向け)

http://www.sppd.ne.jp/ へアクセスした際、 https://www.sppd.ne.jp/ にリダイレクトさせ、強制的にHTTPSでWEBサイトを閲覧させるようにします。

RewriteEngine On
RewriteCond %{HTTPS} off
RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [R,L]
mod_headersモジュールについて

mod_headersは、HTTPリクエストのヘッダーと応答のヘッダーのカスタマイズすることができるモジュールです。

.htaccess設置の流れ

htaccess.txtというファイル名で、下記の内容のファイルを作成または編集し、書き換えを行いたいディレクトリにFTPでアップロードします。

アップロード後、 FTP上で htaccess.txtの名前を .htaccessに変更します。

ブラウザーを起動し、設定内容通りの動作が行なわれているか確認します。

.htaccessの設定例は以下をご確認ください。

動的に変化するcgiやphpのWEBページをキャッシュされないようにする設定。
<Files ~ "\.(cgi|php)$">
  Header set Pragma no-cache
  Header set Cache-Control no-cache
  Header set Expires "Thu, 01 Dec 1994 16:00:00 GMT"
</Files>
mod_expiresモジュールについて

mod_expiresは、ブラウザーキャッシュを制御することができるモジュールです。

.htaccess設置の流れ

htaccess.txtというファイル名で、下記の内容のファイルを作成または編集し、書き換えを行いたいディレクトリにFTPでアップロードします。

アップロード後、 FTP上で htaccess.txtの名前を .htaccessに変更します。

ブラウザーを起動し、設定内容通りの動作が行なわれているか確認します。

.htaccessの設定例は以下をご確認ください。

htmlのキャッシュ期間を15分にして、画像のキャッシュ期間を3日間にする設定。
ExpiresActive On
ExpiresByType image/gif "access plus 3 days"
ExpiresByType image/jpeg "access plus 3 days"
ExpiresByType image/png "access plus 3 days"
ExpiresByType text/html "access plus 15 minutes"
phpの動作環境を変更する(モジュール版のPHPのみ)

.htaccessを使用したphpの動作設定変更の方法を、ご案内します。

ホームディレクトリにアップロードした .htaccess ファイルに、下記のように記述して頂く事で、PHPの仕様を変更することが可能です。標準設定については、以下のPHPマニュアルをご覧下さい。

php_flag register_globals off
ブラウザー等から送信されたデータをPHPプログラムに変数として受け渡すときの展開方法を指定します。
php_flag short_open_tag on
phpスクリプトの開始記号として、<?php ではなく <? を利用できるようにします。
php_flag display_errors off
エラーが発生したときの情報をブラウザーに表示させるか否かを指定します。
php_flag magic_quotes_gpc off
すべてのシングルクォート(')、ダブルクォート(")、バックスラッシュ(\)、及びNULLを自動的にエスケープさせるか否かを指定します。
php_value mbstring.language Japanese
mbstringで使用される 言語のデフォルト値を定義します。
php_value mbstring.internal_encoding Shift_JIS
mbstringで使用される 言語のデフォルト値を定義します。
WAF検査の除外(WAFご利用者様向け)

.htaccessを使用して、接続元IPアドレスによるWAF検査の除外をお客様自身で設定することができます。

.htaccessの設定例は以下ページをご確認ください。

接続元IPアドレスによるWAF検査の除外方法(ご利用者様向け