GCS Amplitude
GCS Amplitude

セクションの設定

this happens only in versions greater or

equal 2.1.0

Woops! This section will have no effect

コンテナには二つの基本となる種類があります。ほとんどのコンテナは 各リクエストに対して評価されます。その場合、コンテナ中のディレクティブは コンテナにマッチするリクエストにのみ適用されます。一方、

コンテナは サーバの起動時と再起動時にのみ評価されます。起動時に条件が真であれば、 コンテナ中のディレクティブはすべてのリクエストに適用されます。条件が 偽であれば、コンテナ中のディレクティブは無視されます。

コマンドラインで適切なパラメータが定義されたときにのみ 適用されるディレクティブを囲います。例えば次の設定では、サーバが httpdhttpd -DClosedForNow

Redirect / http://otherserver.example.com/

は 非常に似ていますが、代わりにサーバ上でモジュールが使用可能な場合にのみ 適用可能なディレクティブを囲います。モジュールはサーバに 静的に組み込まれているか、動的に組み込むようになっていて、設定ファイル中で

と、 とてもよく似ていますが、稼働中のサーバのバージョンが特定のバージョンの時にのみ 適用されます。様々なバージョンの httpd を様々な設定で動作させることになる場合で、 テストスイートや巨大なネットワークでの用途を想定して、 このモジュールは設計されています。

ディレクティブは テストの前に "!" を付けることで否定の条件を適用することができます。 また、これらのセクションはより複雑な制限を課すために入れ子にすることができます。

最もよく使われる設定のセクションコンテナはファイルシステムやウェブ空間の 特定の場所の設定を変更するものです。まず、この二つの違いを理解することが 大切です。ファイルシステムはオペレーティングシステムから見たディスクの内容です。 たとえば、デフォルトのインストールでは Apache は Unix ファイルシステムでは /usr/local/apache2

に、Windows ファイルシステムでは "c:/Program Files/Apache Group/Apache2"

というパスはファイルシステムの /usr/local/apache2/htdocs/dir/

ディレクティブとその正規表現版は ウェブ空間上の内容に対して設定を変更します。 たとえば、次の設定では /private で始まる URL パスへのアクセスを制限します。 具体的には、 http://yoursite.example.com/private

で提供されている Apache 内部ハンドラにマップするかを示しています。ファイルシステムに mod_statusserver-status

全ユーザディレクトリの設定を変更する、非 regex ワイルドカードセクションは次のようになります。

regex セクションを使用することで、画像ファイルの多くのタイプに対する アクセスを一度に拒否できます。

ディレクティブはパス名をリセットすることなくシンボリックリンクを 辿ります。ですから、高度なセキュリティが要求される場合は、 適切に

セクションはどんな URL にも関わらず適用されるので、完全に安全です。

コンテナは特定のホストに適用するディレクティブを格納します。 一台のマシンで複数のホストを異なる設定で提供したいときに有用です。 詳細に関してはバーチャルホストドキュメントを ご覧下さい。

コンテナは、特定の URL にマッチする

プロクシサーバを経由してアクセスしたサイトに対してのみ適用される 設定ディレクティブを格納します。例えば次の設定は、mod_proxycnn.com

どのタイプの設定セクションでどのディレクティブが使用できるかは、 ディレクティブの Context を見てください。

(上のグループ 1) はディレクトリが短いものから長いものへと処理されます。ですから、 例えば

セクションが 同じディレクトリに 適用される場合は、設定ファイル中の順番に従って処理されます。

セクション中のセクションは バーチャルホストの定義の外側の対応するセクションの 後に適用されます。これによりバーチャルホストが メインのサーバ設定を上書きできるようなります。

が行なわれます。 これらを適用した結果は変換が終わった後に完全に捨てられます。 次はマージの順番を示すための恣意的な例になっています。 リクエスト全てに適用されるとして、本例のディレクティブは A > B > C > D > E の順番に適用されます。

セクションが最後に評価されて、サーバへのアクセスは制限されません。 言い換えれば、マージの順番は重要で、注意して使用してください

Deny from badguy.example.com

モジュール | ディレクティブ | FAQ | 用語 | サイトマップ

Apache HTTP サーバ バージョン 2.4

セクションの設定

翻訳済み言語: en | fr | ja | ko | tr

設定ファイル中のディレクティブは サーバ全体に適用されたり、特定のディレクトリやファイル、ホスト、URL にのみ 適用されるように制限したりすることができます。この文書は設定用のセクションの コンテナや .htaccess ファイルを使って他の設定ディレクティブの スコープを変更する方法を説明します。

.htaccess

設定用セクションコンテナの種類

関連モジュール

関連ディレクティブ

coremod_versionmod_proxy

core
mod_version
mod_proxy

ディレクティブと ディレクティブ、それと それらの正規表現版はディレクティブをファイルシステムの一部分に対して適用します。 セクションの 中のディレクティブは指定されたディレクトリとそのすべてのサブディレクトリに 適用されます。.htaccess ファイルを 使うことでも同じ効果を得ることができます。例えば、次の設定では /var/web/dir1 とすべてのサブディレクトリに対して ディレクトリインデックスを行ないます。

セクションの 中にあるディレクティブはどのディレクトリにあるかに関わらず、指定された名前の すべてのファイルに適用されます。ですから例えば以下の設定ディレクティブが 設定ファイルの主セクションに書かれたときには、すべての場所の private.html という名前のファイルへのアクセスを拒否します。

ファイルシステムの特定の場所にあるファイルを指定するために、 セクションと セクションを 組み合わせることができます。例えば、次の設定では /var/web/dir1/private.html, /var/web/dir1/subdir2/private.html, /var/web/dir1/subdir3/private.html など、 /var/web/dir1/ ディレクトリの下にあるすべての private.html へのアクセスを拒否します。

一方、 ディレクティブとその正規表現版は ウェブ空間上の内容に対して設定を変更します。 たとえば、次の設定では /private で始まる URL パスへのアクセスを制限します。 具体的には、 http://yoursite.example.com/private, http://yoursite.example.com/private123, http://yoursite.example.com/private/dir/file.html へのリクエストや、 他の同様に /private 文字列で始まるリクエストに 適用されます。

ディレクティブはファイルシステムと関係ある必要が全くありません。 たとえば次の例では、どのようにして特定の URL を mod_statusで提供されている Apache 内部ハンドラにマップするかを示しています。ファイルシステムに server-status というファイルが存在する必要はありません。

, , ディレクティブでは、 C 標準ライブラリの fnmatch のように shell スタイルのワイルドカードキャラクタが使用できます。 "*" 文字は任意の文字列にマッチし、"?" 文字は任意の 1 文字にマッチし、 "[seq]" は seq の任意の文字にマッチします。 "/" 文字はどのワイルドカードでもマッチされません。 明示的に指定する必要があります。

これより柔軟なマッチングが必要な場合は、これらのコンテナに正規表現 (regex) 版である , , があり、マッチを選択するのに perl 互換正規表現を使用できます。しかし、次の設定のマージに目を通して、 regex セクションを使用することで、ディレクティブの適用がどのように 変化するか把握しておいてください。

ファイルシステムコンテナとウェブ空間コンテナを使い分けるのは、 実際には非常に簡単です。ファイルシステムに依存する オブジェクトにディレクティブを適応する場合は、必ず を使用します。ファイルシステムに依存しないオブジェクト (データベースから生成されるウェブページなど) にディレクティブを適用する際には、 を使用します。

ファイルシステム上のオブジェクトへのアクセスを制限するために、 を決して使用ないようにしましょう。 同一のファイルシステム位置にマップしている、ウェブ空間位置 (URL) が多数あって、設定した制限を迂回されてしまうかもしれないからです。 例えば次の設定を考えてみましょう。

http://yoursite.example.com/dir/ へのリクエストでは上手く動作します。しかし大文字小文字を区別しない ファイルシステムを使っていたらどうなるでしょう? http://yoursite.example.com/DIR/ へのリクエストで簡単にアクセス制限を迂回されてしまいます。これに対して ディレクティブを使用すると、どのように呼び出されたかに関わらず その場所から提供される内容に適用されます。 (例外はファイルシステムのリンクです。シンボリックリンクを使って、 同一のディレクトリを複数のファイルシステムに設置できます。