Apacheサーバーの設定ファイルとHTTP環境変数の関係

Apache設定ファイルにディレクティブの値としてHTTP環境変数を設定

HTTP通信はクライアントからのリクエストに対してApacheサーバーがレスポンスを返すことで成立します。

HTTPサーバーとしての最大の機能はバーチャルホストであり、物理ディレクトリを仮想サーバーのDocumentRootに指定してURLを割り当てることで、1つのApacheサーバーで複数のドメインや複数のサブドメインの管理することができます。

Apacheサーバーのチューニングをするといういことは、Apache設定ファイルであるhttpd.confに、Apacheディレクティブと値(ON/OFF, 数字, HTTP環境変数, URLなど)を設定することであり、これを親子関係にある.htaccessに設定して、ディレクトリ単位に配置することもできます。

 

.htaccessに、Apacheのrewrite_modeモジュールが実装するディレクティブ(コマンド・命令)を記述し、任意のディレクトリに配置することによってhttpd.confによる設定を上書きします。

例えばRewriteCondというディレクティブは、%{xxxx}形式で環境変数やリクエストヘッダの情報を参照するので、%{HTTPS}であれば、サーバー変数であるHTTPSを参照し、SSL通信がOFFであるかどうかを判断しています。

ApacheのHTTP環境変数はサーバー変数とも呼ばれ、変数ごとに固有の情報を記憶する仕組みを実装しており、この情報はログ収集やアクセス制御に使われます。

なおサーバー変数はWindowsの環境変数とは別物です。

XAMPPのApacheサーバー起動時には、httpd.confからPHPに関する設定をhttpd-xampp.confに分けてインクルードしてロードしますが、ディレクティブの適用範囲を限定して設定するにはコンテナタグ「<>」の中で<ディレクティブ 値>の形式で記述します。

  1. ディレクトリごとの設定は<Directory “D:/xammp/htdocs”>
  2. ファイルごとの設定は<Files “.ht*”>
  3. URLごとの設定は<Location>
  4. 仮想ホストごとの設定は<ViurtualHost>

.htaccessを有効にするためにhttpd.conf内のAllowOverrideをAllにする必要があります。

ちなみにApacheサーバーのディレクトリ単位にBasic認証をかけるための.htaccessファイルにはApacheのディレクティブを記載します。

こんな投稿も読まれています