httpd.conf

httpd.conf はApache HTTP Serverの設定ファイルです。

ディレクティブ一覧
モジュール ディレクティブ 説明
core AllowOverride httpd.confの設定を.htaccessで上書きできるかどうかを設定する。
Directory 指定したディレクトリ及びそのサブディレクトリにのみ適用されるディレクティブを囲む。
DocumentRoot ドキュメントルートを設定する。
Files マッチするファイル名にのみ適用されるディレクティブを囲む。
IfModule 指定したモジュールが存在するときにのみ適用されるディレクティブを囲む。
Options ディレクトリに対して、使用可能な機能を設定する。
mod_access_compat Allow アクセスできるホストを制御する。
Deny アクセスを拒否するホストを制御する。
Order AllディレクティブとDenyディレクティブが評価される順番を制御する。
mod_headers Header HTTP応答ヘッダを設定する。
mod_setenvif SetEnvIf リクエストの属性に基づいて環境変数を定義する。
mod_rewrite RewriteCond URL書き換えルールを適用する条件を定義する。
RewriteEngine URL書き換えエンジンを有効又は無効に設定する。
RewriteRule URL書き換えルールを定義する。

Options

Options { All | [FollowSymLinks] [Indexes] [MultiView] }

FollowSymLinksオプションを指定すると、サーバがこのディレクトリ内でシンボリックリンクを辿れるようになる。

Indexes オプションを指定すると、URLがディレクトリにマップするリクエストであり、DirectoryIndex で指定したファイルがディレクトリ内に無ければ、ディレクトリ内の一覧を表示する。

All オプションを指定すると、MultiView を除くすべてのオプションを指定したことになる。

オプションのデフォルトは All である。

Allow

Allowディレクティブはアクセスできるホストを制御する。

Allow from all|host|env=[!]variable [host|env=[!]variable] ...

allを指定した場合、すべてのホストからのアクセスを許可する。

hostにはアクセスを許可するホストのドメイン名又はIPアドレスを指定する。ドメイン名やIPアドレスは一部だけ指定することもできる。

すべてのホストからのアクセスを許可するにはallを指定する。

Allow from all

アクセスできるホストを制限する例を示す。

Allow from itref.fc2web.com
Allow from fc2web.com
Allow from 192.168.1.2
Allow from 192.168

env=variableを指定した場合、variableに指定した環境変数が定義されているときにアクセスを許可する。

Allow from env=foo

env=!variableを指定した場合、variableに指定した環境変数が未定義のときにアクセスを許可する。

Allow from env=!foo

Deny

Denyディレクティブは、アクセスを拒否するホストを制御する。

Deny from all|host|env=[!]variable [host|env=[!]variable] ...

Orderディレクティブ

Orderディレクティブは、AllディレクティブとDenyディレクティブが評価される順番を制御する。

Order ordering
ordering
AllowとDenyが評価される順番を指定する。
説明
Allow,Deny まずAllowが評価され、次にDenyが評価される。カンマの前後に空白を含めることはできない。
Deny,Allow まずDenyが評価され、次にAllowが評価される。カンマの前後に空白を含めることはできない。
Order Deny,Allow

SetEnvIf

SetEnvIfディレクティブは、リクエストの属性に基づいて環境変数を定義する。

SetEnvIf attribute regexp variable[=value]

attributeに指定した属性の値がregexpにマッチした場合、variableに指定した環境変数にvalueで指定した値が設定される。

attribute にはリクエストの属性を指定する。

リクエストの属性
属性 説明
Host HTTPリクエストヘッダのHostフィールド
User-Agent HTTPリクエストヘッダのUser-Agentフィールド
Referer HTTPリクエストヘッダのRefererフィールド
Remote_Host クライアントのホスト名
Remote_Addr クライアントのIPアドレス
Request_Method メソッド名(GETやPOSTなど)
Request_Protocol プロトコルの名前とバージョン("HTTP/1.1"など)
Request_URI URLのスキームとホストの後の部分
Cookie Cookieの値

regexpには、リクエストの属性値を正規表現で指定する。

variableには、環境変数を名前を指定する。

valueには、環境変数に設定する値を指定する。valueの指定を省略した場合、環境変数の値には"1"が設定される。

クッキーfooの値がbarであれば、環境変数cookie_okを定義するサンプルを示す。

SetEnvIf Cookie "foo=bar" cookie_ok

クッキーfooの値が定義されていれば、環境変数cookie_okを定義するサンプルを示す。

SetEnvIf Cookie "foo=" cookie_ok

IfModeule

モジュールが存在するときに処理されるディレクティブを指定する。または、モジュールが存在しないときに処理されるディレクティブを指定する。

<IfModule [!]module-file|module-id>
[directive ...]
</IfModule>
module-file
モジュールのファイル名を指定する。
module-id
モジュールの識別子を指定する。

リダイレクト

RewriteRuleディレクティブによるURL書き換えを行うには、mode_rewriteモジュールを有効にする必要がある。mod_rewriteモジュールを有効にするには、confディレクトリにあるhttpd.confファイルを編集して、次の行を追加する。

LoadModule rewrite_module modules/mod_rewrite.so

RewriteCond

ApacheのRewriteCondディレクティブは、URL書き換えルールを適用する条件を定義する。

RewriteCond test [!]pattern [flags]
test
テストする対象を指定する。
対象 説明
%{HTTP_COOKIE} クッキー
%{HTTP_HOST} サーバのホスト名
%{HTTP_REFERER} 参照元URL
%{HTTP_USER_AGENT} ユーザエージェント
pattern
比較するパターンを正規表現で指定する。パターンと一致した場合、RewriteRuleを適用する。
先頭に!を指定した場合、パターンと一致しない場合にRewriteRuleを適用する。
flags
フラグを指定する。カンマで区切って複数指定できる。
フラグ 説明
nocase 大文字と小文字を区別せずにパターンと一致するかどうかをテストする。
NC
ornext RewriteCondが複数ある場合、いずれかの条件にあてはまる場合にRewriteRuleを適用する。
ORを指定しない場合はAND条件となる。
OR

画像の直リンクを禁止するサンプルを示す。

RewriteCond %{HTTP_REFERER} !^$
RewriteCond %{HTTP_REFERER} !itref.fc2web.com [NC]
RewriteRule \.(gif|jpg|png)$ - [F,NC]

RewriteEngine

ApacheのRewriteEngineディレクティブは、URL書き換えエンジンを有効又は無効に設定する。

RewriteEngine on|off

RewriteRule

ApacheのRewriteRuleディレクティブは、URL書き換えルールを定義する。

RewriteRule pattern substitution [flags]
pattern
書き換える対象となるURLを正規表現で指定する。
substitution
書き換え後のURLを指定する。
flags
フラグを指定する。カンマで区切って複数指定できる。
フラグ 説明
last 書き換え処理を即座に停止して、これ以上ルールを適用しない。
L
Header set header value
set
応答ヘッダを設定する。

関連記事

Apache HTTP Server