htaccess.xml.ja revision d040a1d5a5cec3210f4c9bcc48ad1f6acad51cbd
af84459fbf938e508fd10b01cb8d699c79083813takashi<?xml version="1.0" encoding="UTF-8" ?>
af84459fbf938e508fd10b01cb8d699c79083813takashi<!DOCTYPE manualpage SYSTEM "/style/manualpage.dtd">
af84459fbf938e508fd10b01cb8d699c79083813takashi<?xml-stylesheet type="text/xsl" href="/style/manual.ja.xsl"?>
af84459fbf938e508fd10b01cb8d699c79083813takashi<!-- English Revision: 574882:1666025 (outdated) -->
af84459fbf938e508fd10b01cb8d699c79083813takashi
af84459fbf938e508fd10b01cb8d699c79083813takashi<!--
af84459fbf938e508fd10b01cb8d699c79083813takashi Licensed to the Apache Software Foundation (ASF) under one or more
fed47023e9be04c612b5f6d4a5ee2b8e7c587181rbowen contributor license agreements. See the NOTICE file distributed with
af84459fbf938e508fd10b01cb8d699c79083813takashi this work for additional information regarding copyright ownership.
af84459fbf938e508fd10b01cb8d699c79083813takashi The ASF licenses this file to You under the Apache License, Version 2.0
d29d9ab4614ff992b0e8de6e2b88d52b6f1f153erbowen (the "License"); you may not use this file except in compliance with
d29d9ab4614ff992b0e8de6e2b88d52b6f1f153erbowen the License. You may obtain a copy of the License at
d29d9ab4614ff992b0e8de6e2b88d52b6f1f153erbowen
d29d9ab4614ff992b0e8de6e2b88d52b6f1f153erbowen http://www.apache.org/licenses/LICENSE-2.0
af84459fbf938e508fd10b01cb8d699c79083813takashi
af84459fbf938e508fd10b01cb8d699c79083813takashi Unless required by applicable law or agreed to in writing, software
af33a4994ae2ff15bc67d19ff1a7feb906745bf8rbowen distributed under the License is distributed on an "AS IS" BASIS,
3f08db06526d6901aa08c110b5bc7dde6bc39905nd WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
af84459fbf938e508fd10b01cb8d699c79083813takashi See the License for the specific language governing permissions and
af84459fbf938e508fd10b01cb8d699c79083813takashi limitations under the License.
af84459fbf938e508fd10b01cb8d699c79083813takashi-->
3f08db06526d6901aa08c110b5bc7dde6bc39905nd
af84459fbf938e508fd10b01cb8d699c79083813takashi<manualpage metafile="htaccess.xml.meta">
af84459fbf938e508fd10b01cb8d699c79083813takashi<parentdocument href="./">How-To / チュートリアル</parentdocument>
f086b4b402fa9a2fefc7dda85de2a3cc1cd0a654rjung
af84459fbf938e508fd10b01cb8d699c79083813takashi<title>Apache チュートリアル: .htaccess ファイル</title>
a1ceb0cd0152edea3c72f4d9dcb352bae6ef273fjorton
a1ceb0cd0152edea3c72f4d9dcb352bae6ef273fjorton<summary>
af84459fbf938e508fd10b01cb8d699c79083813takashi<p><code>.htaccess</code> ファイルはディレクトリ毎に設定を変更する方法を
af84459fbf938e508fd10b01cb8d699c79083813takashi提供します。</p>
af84459fbf938e508fd10b01cb8d699c79083813takashi</summary>
af84459fbf938e508fd10b01cb8d699c79083813takashi
3c13a815670b54d1c17bf02954f7d2b066cde95cnd<section id="related"><title>.htaccess ファイル</title>
3c13a815670b54d1c17bf02954f7d2b066cde95cnd <related>
2d39a41e98476f5235b7c37ce745a4aa0904b1cbrbowen <modulelist>
cd34a6fbf0a2619544a72eadb73f309370bf6682wrowe <module>core</module>
cd34a6fbf0a2619544a72eadb73f309370bf6682wrowe <module>mod_authn_file</module>
cd34a6fbf0a2619544a72eadb73f309370bf6682wrowe <module>mod_authz_groupfile</module>
cd34a6fbf0a2619544a72eadb73f309370bf6682wrowe <module>mod_cgi</module>
cd34a6fbf0a2619544a72eadb73f309370bf6682wrowe <module>mod_include</module>
cd34a6fbf0a2619544a72eadb73f309370bf6682wrowe <module>mod_mime</module>
cd34a6fbf0a2619544a72eadb73f309370bf6682wrowe </modulelist>
fed47023e9be04c612b5f6d4a5ee2b8e7c587181rbowen
cd34a6fbf0a2619544a72eadb73f309370bf6682wrowe <directivelist>
cd34a6fbf0a2619544a72eadb73f309370bf6682wrowe <directive module="core">AccessFileName</directive>
af84459fbf938e508fd10b01cb8d699c79083813takashi <directive module="core">AllowOverride</directive>
af84459fbf938e508fd10b01cb8d699c79083813takashi <directive module="core">Options</directive>
af84459fbf938e508fd10b01cb8d699c79083813takashi <directive module="mod_mime">AddHandler</directive>
af84459fbf938e508fd10b01cb8d699c79083813takashi <directive module="core">SetHandler</directive>
af84459fbf938e508fd10b01cb8d699c79083813takashi <directive module="mod_authn_core">AuthType</directive>
af84459fbf938e508fd10b01cb8d699c79083813takashi <directive module="mod_authn_core">AuthName</directive>
af84459fbf938e508fd10b01cb8d699c79083813takashi <directive module="mod_authn_file">AuthUserFile</directive>
af84459fbf938e508fd10b01cb8d699c79083813takashi <directive module="mod_authz_groupfile">AuthGroupFile</directive>
fed47023e9be04c612b5f6d4a5ee2b8e7c587181rbowen <directive module="mod_authz_core">Require</directive>
af84459fbf938e508fd10b01cb8d699c79083813takashi </directivelist>
af84459fbf938e508fd10b01cb8d699c79083813takashi
af84459fbf938e508fd10b01cb8d699c79083813takashi </related>
cd34a6fbf0a2619544a72eadb73f309370bf6682wrowe</section>
af84459fbf938e508fd10b01cb8d699c79083813takashi
30471a4650391f57975f60bbb6e4a90be7b284bfhumbedooh<section id="what">
af84459fbf938e508fd10b01cb8d699c79083813takashi<title>.htaccess ファイルとは何か/その使い方</title>
af84459fbf938e508fd10b01cb8d699c79083813takashi
fed47023e9be04c612b5f6d4a5ee2b8e7c587181rbowen <p><code>.htaccess</code> ファイル (「分散設定ファイル」) は
af84459fbf938e508fd10b01cb8d699c79083813takashi ディレクトリ毎に設定を変更する方法を提供します。ディレクティブの
cd34a6fbf0a2619544a72eadb73f309370bf6682wrowe 書かれたファイルをディレクトリに置くことで、そのディレクトリとその
cd34a6fbf0a2619544a72eadb73f309370bf6682wrowe サブディレクトリすべてにディレクティブを適用させることができます。</p>
cd34a6fbf0a2619544a72eadb73f309370bf6682wrowe
cd34a6fbf0a2619544a72eadb73f309370bf6682wrowe <note><title>注:</title>
cd34a6fbf0a2619544a72eadb73f309370bf6682wrowe <p><code>.htaccess</code> ファイルを別の名前にしたい場合は、
cd34a6fbf0a2619544a72eadb73f309370bf6682wrowe <directive module="core">AccessFileName</directive> ディレクティブを
9a58dc6a2b26ec128b1270cf48810e705f1a90dbsf 使って変更することができます。例えば、そのファイルを <code>.config</code>
cd34a6fbf0a2619544a72eadb73f309370bf6682wrowe という名前にしたい場合は、以下の設定をサーバ設定ファイルに入れることが
cd34a6fbf0a2619544a72eadb73f309370bf6682wrowe できます:</p>
cd34a6fbf0a2619544a72eadb73f309370bf6682wrowe
fed47023e9be04c612b5f6d4a5ee2b8e7c587181rbowen <example>
78f97ce162b66a0dbfd7af4dcd9984f162569b04minfrin AccessFileName .config
cd34a6fbf0a2619544a72eadb73f309370bf6682wrowe </example>
cd34a6fbf0a2619544a72eadb73f309370bf6682wrowe </note>
cd34a6fbf0a2619544a72eadb73f309370bf6682wrowe
cd34a6fbf0a2619544a72eadb73f309370bf6682wrowe <p>一般に、<code>.htaccess</code> ファイルの構文は
cd34a6fbf0a2619544a72eadb73f309370bf6682wrowe <a href="/configuring.html#syntax">主設定ファイル</a>
cd34a6fbf0a2619544a72eadb73f309370bf6682wrowe と同じです。これらのファイルに書くことのできるディレクティブは <directive
cd34a6fbf0a2619544a72eadb73f309370bf6682wrowe module="core">AllowOverride</directive> ディレクティブにより決まります。
cd34a6fbf0a2619544a72eadb73f309370bf6682wrowe このディレクティブは、<code>.htaccess</code> ファイルに
fed47023e9be04c612b5f6d4a5ee2b8e7c587181rbowen 書かれたディレクティブの中で、、
fed47023e9be04c612b5f6d4a5ee2b8e7c587181rbowen どのディレクティブが適用されるかをカテゴリー単位で指定します。
cd34a6fbf0a2619544a72eadb73f309370bf6682wrowe <code>.htaccess</code> に書くことのできるディレクティブであれば、
cd34a6fbf0a2619544a72eadb73f309370bf6682wrowe 説明文書には「上書き」という項目があり、.htaccess に書くことができるように
cd34a6fbf0a2619544a72eadb73f309370bf6682wrowe なるための <directive
cd34a6fbf0a2619544a72eadb73f309370bf6682wrowe module="core">AllowOverride</directive> の値が指定されています。</p>
4bebf996eb7002ebfe897d46a0e0572390604a77nd
4bebf996eb7002ebfe897d46a0e0572390604a77nd <p>例えば、<directive
4bebf996eb7002ebfe897d46a0e0572390604a77nd module="core">AddDefaultCharset</directive> ディレクティブの説明を
4bebf996eb7002ebfe897d46a0e0572390604a77nd 見ると、<code>.htaccess</code> ファイルでの使用が許可されていることが
cd34a6fbf0a2619544a72eadb73f309370bf6682wrowe わかります。 (ディレクティブの概要の所にある「コンテキスト」と書かれている
4bebf996eb7002ebfe897d46a0e0572390604a77nd 行を見てください。) <a
9534272616b71aaea50aeec4162e749a96aebd7fsf href="/mod/directive-dict.html#Context">上書き</a>と書かれている行には
4bebf996eb7002ebfe897d46a0e0572390604a77nd <code>FileInfo</code> とあります。ですから、<code>.htaccess</code> 中の
cd34a6fbf0a2619544a72eadb73f309370bf6682wrowe このディレクティブが有効になるためには、少なくとも
af84459fbf938e508fd10b01cb8d699c79083813takashi <code>AllowOverride FileInfo</code> が設定されている必要があります。</p>
af84459fbf938e508fd10b01cb8d699c79083813takashi
af84459fbf938e508fd10b01cb8d699c79083813takashi <example><title>例:</title>
af84459fbf938e508fd10b01cb8d699c79083813takashi <table>
af84459fbf938e508fd10b01cb8d699c79083813takashi <tr>
cd34a6fbf0a2619544a72eadb73f309370bf6682wrowe <td><a
cd34a6fbf0a2619544a72eadb73f309370bf6682wrowe href="/mod/directive-dict.html#Context">コンテキスト:</a></td>
fed47023e9be04c612b5f6d4a5ee2b8e7c587181rbowen <td>サーバ設定ファイル,バーチャルホスト,ディレクトリ,.htaccess</td>
cd34a6fbf0a2619544a72eadb73f309370bf6682wrowe </tr>
cd34a6fbf0a2619544a72eadb73f309370bf6682wrowe
cd34a6fbf0a2619544a72eadb73f309370bf6682wrowe <tr>
cd34a6fbf0a2619544a72eadb73f309370bf6682wrowe <td><a
cd34a6fbf0a2619544a72eadb73f309370bf6682wrowe href="/mod/directive-dict.html#Override">上書き:</a></td>
cd34a6fbf0a2619544a72eadb73f309370bf6682wrowe <td>FileInfo</td>
fed47023e9be04c612b5f6d4a5ee2b8e7c587181rbowen </tr>
cd34a6fbf0a2619544a72eadb73f309370bf6682wrowe </table>
cd34a6fbf0a2619544a72eadb73f309370bf6682wrowe </example>
cd34a6fbf0a2619544a72eadb73f309370bf6682wrowe
cd34a6fbf0a2619544a72eadb73f309370bf6682wrowe <p>あるディレクティブを <code>.htaccess</code> ファイルに書くことができるか
cd34a6fbf0a2619544a72eadb73f309370bf6682wrowe どうかわからないときは、そのディレクティブの説明を探して、".htaccess"
cd34a6fbf0a2619544a72eadb73f309370bf6682wrowe のための「コンテキスト」の行を調べてください。</p>
cd34a6fbf0a2619544a72eadb73f309370bf6682wrowe </section>
57c845e03570b3641fbf41d4f139e2a9b49e406and
57c845e03570b3641fbf41d4f139e2a9b49e406and <section id="when"><title>いつ .htaccess ファイルを使う(使わない)か。</title>
57c845e03570b3641fbf41d4f139e2a9b49e406and
57c845e03570b3641fbf41d4f139e2a9b49e406and <p>一般的に、サーバの主設定ファイルにアクセスできない場合を除いて、
57c845e03570b3641fbf41d4f139e2a9b49e406and <code>.htaccess</code> ファイルの使用は極力避けてください。
57c845e03570b3641fbf41d4f139e2a9b49e406and 世の中には、例えば、ユーザ認証は常に <code>.htaccess</code> ファイルで
4b311579b2c8aebac85fb7cb8ac89e6c37b4bc1asf 行なわなければならない、という誤解が広まっていますが、まったくそんなことは
57c845e03570b3641fbf41d4f139e2a9b49e406and ありません。ユーザ認証の設定はサーバ主設定ファイルに書くことができ、
7e9d90004f580231e0376880710dc25408950ab9rbowen 実際、その方がより良い設定方法です。</p>
7e9d90004f580231e0376880710dc25408950ab9rbowen
7e9d90004f580231e0376880710dc25408950ab9rbowen <p><code>.htaccess</code> ファイルはコンテンツ提供者がディレクトリ毎の
7e9d90004f580231e0376880710dc25408950ab9rbowen 設定を行ないたいけれど、サーバシステムの root アクセス権限を持っていない
7e9d90004f580231e0376880710dc25408950ab9rbowen という場合にのみ使うべきものです。サーバ管理者が頻繁に設定変更を行ないたくは
cd34a6fbf0a2619544a72eadb73f309370bf6682wrowe ない、というときには個々のユーザが <code>.htaccess</code> ファイルを使って
cd34a6fbf0a2619544a72eadb73f309370bf6682wrowe 自分で設定の変更を行なうことを許可した方が良いときもあるでしょう。
cd34a6fbf0a2619544a72eadb73f309370bf6682wrowe これは特に、ISP が複数のユーザのサイトを一つのマシンでホストしていて、
cd34a6fbf0a2619544a72eadb73f309370bf6682wrowe 各ユーザが設定の変更をできるようにしたいようなときにあてはまります。</p>
cd34a6fbf0a2619544a72eadb73f309370bf6682wrowe
fed47023e9be04c612b5f6d4a5ee2b8e7c587181rbowen <p>しかし、普通は可能であれば <code>.htaccess</code> ファイルの使用は
cd34a6fbf0a2619544a72eadb73f309370bf6682wrowe 避けてください。<code>.htaccess</code> ファイルに書こうと考えるような
cd34a6fbf0a2619544a72eadb73f309370bf6682wrowe すべての設定は、サーバの主設定ファイルの <directive module="core"
cd34a6fbf0a2619544a72eadb73f309370bf6682wrowe type="section">Directory</directive> セクションで同じように行なうことが
cd34a6fbf0a2619544a72eadb73f309370bf6682wrowe できます。</p>
cd34a6fbf0a2619544a72eadb73f309370bf6682wrowe
cd34a6fbf0a2619544a72eadb73f309370bf6682wrowe <p><code>.htaccess</code> ファイルの使用を避ける理由は主に二つあります。</p>
cd34a6fbf0a2619544a72eadb73f309370bf6682wrowe
cd34a6fbf0a2619544a72eadb73f309370bf6682wrowe <p>一つ目はサーバの性能の問題です。<directive
cd34a6fbf0a2619544a72eadb73f309370bf6682wrowe module="core">AllowOverride</directive> ディレクティブが
cd34a6fbf0a2619544a72eadb73f309370bf6682wrowe <code>.htaccess</code> ファイルの設定を許可している場合は、Apache は
cd34a6fbf0a2619544a72eadb73f309370bf6682wrowe 各ディレクトリで <code>.htaccess</code> ファイルを探します。
cd34a6fbf0a2619544a72eadb73f309370bf6682wrowe ですから、<code>.htaccess</code> ファイルを許可すると、実際に使用しているか
cd34a6fbf0a2619544a72eadb73f309370bf6682wrowe どうかに関わらず、性能の低下を招くことになります! また、<code>.htaccess</code>
888cb40bdeec5abf452bd85d6bf63b26d5913d4chumbedooh ファイルは文書がリクエストされる度に読み込まれます。</p>
888cb40bdeec5abf452bd85d6bf63b26d5913d4chumbedooh
888cb40bdeec5abf452bd85d6bf63b26d5913d4chumbedooh <p>さらに、Apache は適用すべきディレクティブを集めるために、すべての
888cb40bdeec5abf452bd85d6bf63b26d5913d4chumbedooh 上位のディレクトリの <code>.htaccess</code> ファイルを探す必要があることにも
888cb40bdeec5abf452bd85d6bf63b26d5913d4chumbedooh 注意してください。(<a href="#how">ディレクティブが適用される方法</a>を
888cb40bdeec5abf452bd85d6bf63b26d5913d4chumbedooh 参照してください。)ですから、<code>/www/htdocs/example</code> にある
cd34a6fbf0a2619544a72eadb73f309370bf6682wrowe ファイルがリクエストされたときは、Apache は以下のファイルを調べます。</p>
888cb40bdeec5abf452bd85d6bf63b26d5913d4chumbedooh
888cb40bdeec5abf452bd85d6bf63b26d5913d4chumbedooh <example>
cd34a6fbf0a2619544a72eadb73f309370bf6682wrowe /.htaccess<br />
cd34a6fbf0a2619544a72eadb73f309370bf6682wrowe /www/.htaccess<br />
888cb40bdeec5abf452bd85d6bf63b26d5913d4chumbedooh /www/htdocs/.htaccess<br />
888cb40bdeec5abf452bd85d6bf63b26d5913d4chumbedooh /www/htdocs/example/.htaccess
888cb40bdeec5abf452bd85d6bf63b26d5913d4chumbedooh </example>
888cb40bdeec5abf452bd85d6bf63b26d5913d4chumbedooh
888cb40bdeec5abf452bd85d6bf63b26d5913d4chumbedooh <p>ですから、そのディレクトリのそれぞれのファイルへのアクセスに対して、
888cb40bdeec5abf452bd85d6bf63b26d5913d4chumbedooh 上の例のファイルがまったく存在しないときでも、追加のファイルシステムの
cd34a6fbf0a2619544a72eadb73f309370bf6682wrowe アクセスが行なわれることになります。(これは、<code>.htaccess</code> が
888cb40bdeec5abf452bd85d6bf63b26d5913d4chumbedooh <code>/</code> に対して有効になっているときの場合で、普通はそうなって
888cb40bdeec5abf452bd85d6bf63b26d5913d4chumbedooh いないことに注意してください。)</p>
cd34a6fbf0a2619544a72eadb73f309370bf6682wrowe
f039cf01b271a31e317d5b84f24cb135f1c1b6d7nd <p>二つ目はセキュリティです。ユーザにサーバの設定を変更することを
cd34a6fbf0a2619544a72eadb73f309370bf6682wrowe 許可することになりますので、あなた自身が管理できない変更をされる
cd34a6fbf0a2619544a72eadb73f309370bf6682wrowe 恐れがあります。ユーザにこの特権を与えるのが良いのかどうか、十分
888cb40bdeec5abf452bd85d6bf63b26d5913d4chumbedooh 検討してください。また、ユーザに与える権限が必要なものよりも少なすぎると、
888cb40bdeec5abf452bd85d6bf63b26d5913d4chumbedooh 余分な技術サポート報告を受け取るようになる可能性が高いことにも
888cb40bdeec5abf452bd85d6bf63b26d5913d4chumbedooh 注意してください。確実に、ユーザにどの程度の権限を与えたか明確に告げるように
888cb40bdeec5abf452bd85d6bf63b26d5913d4chumbedooh してください。<directive module="core">AllowOverride</directive> に
888cb40bdeec5abf452bd85d6bf63b26d5913d4chumbedooh 何を設定したかということと、関連する文書を示すことで、
888cb40bdeec5abf452bd85d6bf63b26d5913d4chumbedooh 後々の混乱をぐっと減らすことが
888cb40bdeec5abf452bd85d6bf63b26d5913d4chumbedooh できます。</p>
f039cf01b271a31e317d5b84f24cb135f1c1b6d7nd
888cb40bdeec5abf452bd85d6bf63b26d5913d4chumbedooh <p>ところで、ディレクティブの書かれた <code>.htaccess</code> を
888cb40bdeec5abf452bd85d6bf63b26d5913d4chumbedooh <code>/www/htdocs/example</code> に置くことと、同じディレクティブを
cd34a6fbf0a2619544a72eadb73f309370bf6682wrowe 主サーバ設定の Directory セクション
af84459fbf938e508fd10b01cb8d699c79083813takashi <code>&lt;Directory /www/htdocs/example&gt;</code> に書くことは
af84459fbf938e508fd10b01cb8d699c79083813takashi 完全に等価です:</p>
2d39a41e98476f5235b7c37ce745a4aa0904b1cbrbowen
fed47023e9be04c612b5f6d4a5ee2b8e7c587181rbowen <p><code>/www/htdocs/example</code> の <code>.htaccess</code> ファイル:</p>
cd34a6fbf0a2619544a72eadb73f309370bf6682wrowe
cd34a6fbf0a2619544a72eadb73f309370bf6682wrowe <example><title><code>/www/htdocs/example</code> の .htaccess ファイルの
cd34a6fbf0a2619544a72eadb73f309370bf6682wrowe 内容</title>
cd34a6fbf0a2619544a72eadb73f309370bf6682wrowe AddType text/example .exm
cd34a6fbf0a2619544a72eadb73f309370bf6682wrowe </example>
cd34a6fbf0a2619544a72eadb73f309370bf6682wrowe
c8c717fafa0a09ed13469a603a178921b851dd22igalic <example><title><code>httpd.conf のセクション</code>
c8c717fafa0a09ed13469a603a178921b851dd22igalic file</title>
b7f8d802ecaed65eada1fc31472d06d8460d5528igalic &lt;Directory /www/htdocs/example&gt;<br />
b7f8d802ecaed65eada1fc31472d06d8460d5528igalic <indent>
b7f8d802ecaed65eada1fc31472d06d8460d5528igalic AddType text/example .exm<br />
b7f8d802ecaed65eada1fc31472d06d8460d5528igalic </indent>
b7f8d802ecaed65eada1fc31472d06d8460d5528igalic &lt;/Directory&gt;
b7f8d802ecaed65eada1fc31472d06d8460d5528igalic </example>
b7f8d802ecaed65eada1fc31472d06d8460d5528igalic
b7f8d802ecaed65eada1fc31472d06d8460d5528igalic <p>しかし、この設定はサーバ設定ファイルに書いた方がパフォーマンスの
b7f8d802ecaed65eada1fc31472d06d8460d5528igalic 低下が少なくなります。ファイルがリクエストされる度に
7c7e501f542451bf7225b23cb299ee4228bfe15dgryzor 読み込まれる代わりに、Apache の起動時に 1 回だけ読み込めば
cd34a6fbf0a2619544a72eadb73f309370bf6682wrowe よくなるからです。</p>
cd34a6fbf0a2619544a72eadb73f309370bf6682wrowe
cd34a6fbf0a2619544a72eadb73f309370bf6682wrowe <p><directive module="core">AllowOverride</directive> ディレクティブの
cd34a6fbf0a2619544a72eadb73f309370bf6682wrowe 値を <code>none</code> に設定することで <code>.htaccess</code> ファイル
cd34a6fbf0a2619544a72eadb73f309370bf6682wrowe の使用を完全に無効にすることができます。</p>
cd34a6fbf0a2619544a72eadb73f309370bf6682wrowe
acf65805923cf80834c39689cc0e2a8e7201c186sf <example>
acf65805923cf80834c39689cc0e2a8e7201c186sf AllowOverride None
acf65805923cf80834c39689cc0e2a8e7201c186sf </example>
c8c717fafa0a09ed13469a603a178921b851dd22igalic</section>
7c7e501f542451bf7225b23cb299ee4228bfe15dgryzor
4bebf996eb7002ebfe897d46a0e0572390604a77nd<section id="how"><title>ディレクティブの適用のされ方</title>
4bebf996eb7002ebfe897d46a0e0572390604a77nd
4bebf996eb7002ebfe897d46a0e0572390604a77nd <p><code>.htaccess</code> ファイルの設定ディレクティブは <code>.htaccess</code>
cd34a6fbf0a2619544a72eadb73f309370bf6682wrowe ファイルの存在するディレクトリと、そのサブディレクトリすべてに適用されます。
cd34a6fbf0a2619544a72eadb73f309370bf6682wrowe しかし、上の階層のディレクトリにも <code>.htaccess</code> ファイルが
cd34a6fbf0a2619544a72eadb73f309370bf6682wrowe 存在するかもしれないことを覚えておくことは大切です。ディレクティブは現れる
cd34a6fbf0a2619544a72eadb73f309370bf6682wrowe 順番に適用されます。ですから、あるディレクトリの <code>.htaccess</code> は
8559a67073808d84d85bb5dd552d4247caafe709sf ディレクトリツリーのより上の階層の <code>.htaccess</code> ファイルの
8559a67073808d84d85bb5dd552d4247caafe709sf 設定を上書きするかもしれません。そして、その <code>.htaccess</code> も
cd34a6fbf0a2619544a72eadb73f309370bf6682wrowe より上の階層で書かれたディレクティブを上書きしたり、主サーバ設定ファイル
cd34a6fbf0a2619544a72eadb73f309370bf6682wrowe そのものの設定を上書きしたりしているかもしれません。</p>
cd34a6fbf0a2619544a72eadb73f309370bf6682wrowe
cd34a6fbf0a2619544a72eadb73f309370bf6682wrowe <p>例:</p>
cd34a6fbf0a2619544a72eadb73f309370bf6682wrowe
cd34a6fbf0a2619544a72eadb73f309370bf6682wrowe <p>ディレクトリ <code>/www/htdocs/example1</code> に以下の内容の
cd34a6fbf0a2619544a72eadb73f309370bf6682wrowe <code>.htaccess</code> ファイルがあります:</p>
cd34a6fbf0a2619544a72eadb73f309370bf6682wrowe
cd34a6fbf0a2619544a72eadb73f309370bf6682wrowe <example>
cd34a6fbf0a2619544a72eadb73f309370bf6682wrowe Options +ExecCGI
cd34a6fbf0a2619544a72eadb73f309370bf6682wrowe </example>
cd34a6fbf0a2619544a72eadb73f309370bf6682wrowe
cd34a6fbf0a2619544a72eadb73f309370bf6682wrowe <p>(注: <code>.htaccess</code>
cd34a6fbf0a2619544a72eadb73f309370bf6682wrowe ファイルで "<directive
cd34a6fbf0a2619544a72eadb73f309370bf6682wrowe module="core">Options</directive>" ディレクティブが有効になるためには、
cd34a6fbf0a2619544a72eadb73f309370bf6682wrowe "<code>AllowOverride Options</code>" を有効にする必要があります。)</p>
8559a67073808d84d85bb5dd552d4247caafe709sf
fed47023e9be04c612b5f6d4a5ee2b8e7c587181rbowen <p>ディレクトリ <code>/www/htdocs/example1/example2</code> には
cd34a6fbf0a2619544a72eadb73f309370bf6682wrowe 以下のような <code>.htaccess</code> ファイルがあります:</p>
cd34a6fbf0a2619544a72eadb73f309370bf6682wrowe
cd34a6fbf0a2619544a72eadb73f309370bf6682wrowe <example>
cd34a6fbf0a2619544a72eadb73f309370bf6682wrowe Options Includes
cd34a6fbf0a2619544a72eadb73f309370bf6682wrowe </example>
cd34a6fbf0a2619544a72eadb73f309370bf6682wrowe
cd34a6fbf0a2619544a72eadb73f309370bf6682wrowe <p>二つめの <code>.htaccess</code> により、ディレクトリ
cd34a6fbf0a2619544a72eadb73f309370bf6682wrowe <code>/www/htdocs/example1/example2</code> では CGI の実行は
8559a67073808d84d85bb5dd552d4247caafe709sf 許可されません。これは、<code>Options Includes</code> のみが
cd34a6fbf0a2619544a72eadb73f309370bf6682wrowe 効力を持ち、それがすべての以前の設定を上書きするからです。</p>
cd34a6fbf0a2619544a72eadb73f309370bf6682wrowe
cd34a6fbf0a2619544a72eadb73f309370bf6682wrowe <section id="merge"><title>メイン設定ファイルに対する
cd34a6fbf0a2619544a72eadb73f309370bf6682wrowe .htaccess のマージ</title>
c8c717fafa0a09ed13469a603a178921b851dd22igalic
c8c717fafa0a09ed13469a603a178921b851dd22igalic <p>As discussed in the documentation on <a
8559a67073808d84d85bb5dd552d4247caafe709sf href="/sections.html">Configuration Sections</a>,
c8c717fafa0a09ed13469a603a178921b851dd22igalic <code>.htaccess</code> files can override the <directive
c8c717fafa0a09ed13469a603a178921b851dd22igalic type="section" module="core">Directory</directive> sections for
c8c717fafa0a09ed13469a603a178921b851dd22igalic the corresponding directory, but will be overriden by other types
8559a67073808d84d85bb5dd552d4247caafe709sf of configuration sections from the main configuration files. This
8559a67073808d84d85bb5dd552d4247caafe709sf fact can be used to enforce certain configurations, even in the
8559a67073808d84d85bb5dd552d4247caafe709sf presence of a liberal <directive
8559a67073808d84d85bb5dd552d4247caafe709sf module="core">AllowOverride</directive> setting. For example, to
8559a67073808d84d85bb5dd552d4247caafe709sf prevent script execution while allowing anything else to be set in
8559a67073808d84d85bb5dd552d4247caafe709sf <code>.htaccess</code> you can use:</p>
8559a67073808d84d85bb5dd552d4247caafe709sf <p><a href="/sections.html">セクションの設定</a>
8559a67073808d84d85bb5dd552d4247caafe709sf に記載されているように、<code>.htaccess</code> ファイルを使って
8559a67073808d84d85bb5dd552d4247caafe709sf <directive type="section" module="core">Directory</directive>
8559a67073808d84d85bb5dd552d4247caafe709sf セクションの設定をディレクトリ毎に上書きできますが、
8559a67073808d84d85bb5dd552d4247caafe709sf メイン設定ファイル中にある、他の種類の設定セクションによって
8559a67073808d84d85bb5dd552d4247caafe709sf さらに上書きされることもあります。
8559a67073808d84d85bb5dd552d4247caafe709sf この特徴を使って、
8559a67073808d84d85bb5dd552d4247caafe709sf <directive module="core">AllowOverride</directive>
8559a67073808d84d85bb5dd552d4247caafe709sf で自由度の高い設定があったとしても、ある特定の設定が確実に
8559a67073808d84d85bb5dd552d4247caafe709sf 反映されるようにできます。例えば、CGI スクリプトの実行は
8559a67073808d84d85bb5dd552d4247caafe709sf 不許可に、かつ、<code>.htaccess</code> でその他の項目は
8559a67073808d84d85bb5dd552d4247caafe709sf 設定できるように、という場合は次のようにできます :</p>
8559a67073808d84d85bb5dd552d4247caafe709sf
8559a67073808d84d85bb5dd552d4247caafe709sf <example>
a55680cd56cecad4f2d7d41b576aa63f0e008916rjung&lt;Directory /&gt;<br />
8559a67073808d84d85bb5dd552d4247caafe709sf<indent>
8559a67073808d84d85bb5dd552d4247caafe709sfAllowoverride All<br />
8559a67073808d84d85bb5dd552d4247caafe709sf</indent>
9a58dc6a2b26ec128b1270cf48810e705f1a90dbsf&lt;/Directory&gt;<br />
4bebf996eb7002ebfe897d46a0e0572390604a77nd<br />
4bebf996eb7002ebfe897d46a0e0572390604a77nd&lt;Location /&gt;<br />
4bebf996eb7002ebfe897d46a0e0572390604a77nd<indent>
4bebf996eb7002ebfe897d46a0e0572390604a77ndOptions +IncludesNoExec -ExecCGI<br />
4bebf996eb7002ebfe897d46a0e0572390604a77nd</indent>
4bebf996eb7002ebfe897d46a0e0572390604a77nd&lt;/Location&gt;
4bebf996eb7002ebfe897d46a0e0572390604a77nd </example>
4bebf996eb7002ebfe897d46a0e0572390604a77nd</section>
4bebf996eb7002ebfe897d46a0e0572390604a77nd
4bebf996eb7002ebfe897d46a0e0572390604a77nd</section>
4bebf996eb7002ebfe897d46a0e0572390604a77nd
4bebf996eb7002ebfe897d46a0e0572390604a77nd<section id="auth"><title>認証の例</title>
65a611af7093423efb91e5794b8887a527d4cf63trawick
65a611af7093423efb91e5794b8887a527d4cf63trawick <p>もし認証の方法を知るためにこの部分に直接来たのであれば、次のことを
65a611af7093423efb91e5794b8887a527d4cf63trawick 知っておくことが重要です。よくある誤解に、パスワード認証を行なうためには
65a611af7093423efb91e5794b8887a527d4cf63trawick <code>.htaccess</code> ファイルを使う必要がある、というものがあります。
65a611af7093423efb91e5794b8887a527d4cf63trawick これは正しくありません。主サーバ設定ファイルの <directive
cd34a6fbf0a2619544a72eadb73f309370bf6682wrowe module="core" type="section">Directory</directive> セクションに
cd34a6fbf0a2619544a72eadb73f309370bf6682wrowe 認証用のディレクティブを書く方が推奨される方法で、<code>.htaccess</code>
af84459fbf938e508fd10b01cb8d699c79083813takashi ファイルは主サーバ設定ファイルを変更できないときにのみ使用すべきです。
af84459fbf938e508fd10b01cb8d699c79083813takashi いつ <code>.htaccess</code> ファイルを使うべきで、いつ使うべきではないかに
af84459fbf938e508fd10b01cb8d699c79083813takashi ついては <a
af84459fbf938e508fd10b01cb8d699c79083813takashi href="#when">上</a>を参照してください。</p>
af84459fbf938e508fd10b01cb8d699c79083813takashi
cd34a6fbf0a2619544a72eadb73f309370bf6682wrowe <p>以上のことをふまえた上で、もし <code>.htaccess</code> の使用が
cd34a6fbf0a2619544a72eadb73f309370bf6682wrowe まだ必要だと思う場合は、次のようなものが望みのことをしてくれるかも
cd34a6fbf0a2619544a72eadb73f309370bf6682wrowe しれません。</p>
cd34a6fbf0a2619544a72eadb73f309370bf6682wrowe
8e9c6d6438af1ccb46adaa60d34caa3ac98f3851igalic <p><code>.htaccess</code> ファイルの内容:</p>
8e9c6d6438af1ccb46adaa60d34caa3ac98f3851igalic
8e9c6d6438af1ccb46adaa60d34caa3ac98f3851igalic <example>
8e9c6d6438af1ccb46adaa60d34caa3ac98f3851igalic AuthType Basic<br />
9534272616b71aaea50aeec4162e749a96aebd7fsf AuthName "Password Required"<br />
7159c12b7697fe9f5ab3a533cc6dfc3d57803053igalic AuthUserFile /www/passwords/password.file<br />
7159c12b7697fe9f5ab3a533cc6dfc3d57803053igalic AuthGroupFile /www/passwords/group.file<br />
7159c12b7697fe9f5ab3a533cc6dfc3d57803053igalic Require Group admins
7159c12b7697fe9f5ab3a533cc6dfc3d57803053igalic </example>
7159c12b7697fe9f5ab3a533cc6dfc3d57803053igalic
8e9c6d6438af1ccb46adaa60d34caa3ac98f3851igalic <p>これらのディレクティブが有効になるためには、
cd34a6fbf0a2619544a72eadb73f309370bf6682wrowe <code>AllowOverride AuthConfig</code> が有効でなくてはならないことに
cd34a6fbf0a2619544a72eadb73f309370bf6682wrowe 注意してください。</p>
1d45c1463a8bc69bab1c07a4729269ec7333e713rbowen
1d45c1463a8bc69bab1c07a4729269ec7333e713rbowen <p>認証と承認については <a href="auth.html">認証チュートリアル</a>を
1d45c1463a8bc69bab1c07a4729269ec7333e713rbowen 参照してください。</p>
1d45c1463a8bc69bab1c07a4729269ec7333e713rbowen</section>
1d45c1463a8bc69bab1c07a4729269ec7333e713rbowen
1d45c1463a8bc69bab1c07a4729269ec7333e713rbowen<section id="ssi"><title>SSI の例</title>
1d45c1463a8bc69bab1c07a4729269ec7333e713rbowen
1d45c1463a8bc69bab1c07a4729269ec7333e713rbowen <p>もう一つの <code>.htaccess</code> ファイルのよくある利用法は
1d45c1463a8bc69bab1c07a4729269ec7333e713rbowen 特定のディレクトリで SSI を有効にすることです。これは、望みのディレクトリの
1d45c1463a8bc69bab1c07a4729269ec7333e713rbowen <code>.htaccess</code> ファイルに以下の設定ディレクティブを書くことで
1d45c1463a8bc69bab1c07a4729269ec7333e713rbowen 達成できます:</p>
4126704c4950bfd46d32ad54e3b106ac6d868a73sf
4126704c4950bfd46d32ad54e3b106ac6d868a73sf <example>
4126704c4950bfd46d32ad54e3b106ac6d868a73sf Options +Includes<br />
4126704c4950bfd46d32ad54e3b106ac6d868a73sf AddType text/html shtml<br />
4126704c4950bfd46d32ad54e3b106ac6d868a73sf AddHandler server-parsed shtml
4126704c4950bfd46d32ad54e3b106ac6d868a73sf </example>
4126704c4950bfd46d32ad54e3b106ac6d868a73sf
4126704c4950bfd46d32ad54e3b106ac6d868a73sf <p>これらのディレクティブが有効になるためには、
888cb40bdeec5abf452bd85d6bf63b26d5913d4chumbedooh <code>AllowOverride Options</code> と <code>AllowOverride
888cb40bdeec5abf452bd85d6bf63b26d5913d4chumbedooh FileInfo</code> が有効になっている必要があることに注意してください。</p>
888cb40bdeec5abf452bd85d6bf63b26d5913d4chumbedooh
888cb40bdeec5abf452bd85d6bf63b26d5913d4chumbedooh <p>よりまとまった SSI の説明は <a href="ssi.html">SSI チュートリアル</a>を
888cb40bdeec5abf452bd85d6bf63b26d5913d4chumbedooh 参照してください。</p>
888cb40bdeec5abf452bd85d6bf63b26d5913d4chumbedooh</section>
a1ceb0cd0152edea3c72f4d9dcb352bae6ef273fjorton
a1ceb0cd0152edea3c72f4d9dcb352bae6ef273fjorton<section id="cgi"><title>CGI の例</title>
a1ceb0cd0152edea3c72f4d9dcb352bae6ef273fjorton
a1ceb0cd0152edea3c72f4d9dcb352bae6ef273fjorton <p>最後に、特定のディレクトリで CGI プログラムの実行を許可したいことが
a1ceb0cd0152edea3c72f4d9dcb352bae6ef273fjorton あるでしょう。これは以下の設定で行なうことができます:</p>
a1ceb0cd0152edea3c72f4d9dcb352bae6ef273fjorton
a1ceb0cd0152edea3c72f4d9dcb352bae6ef273fjorton <example>
a1ceb0cd0152edea3c72f4d9dcb352bae6ef273fjorton Options +ExecCGI<br />
cd34a6fbf0a2619544a72eadb73f309370bf6682wrowe AddHandler cgi-script cgi pl
cd34a6fbf0a2619544a72eadb73f309370bf6682wrowe </example>
af84459fbf938e508fd10b01cb8d699c79083813takashi
af84459fbf938e508fd10b01cb8d699c79083813takashi <p>もしくは、あるディレクトリのすべてのファイルが CGI プログラムと
af84459fbf938e508fd10b01cb8d699c79083813takashi みなされるようにしたいなら、以下の設定で実現することができます:</p>
af84459fbf938e508fd10b01cb8d699c79083813takashi
af84459fbf938e508fd10b01cb8d699c79083813takashi <example>
cd34a6fbf0a2619544a72eadb73f309370bf6682wrowe Options +ExecCGI<br />
cd34a6fbf0a2619544a72eadb73f309370bf6682wrowe SetHandler cgi-script
af84459fbf938e508fd10b01cb8d699c79083813takashi </example>
cd34a6fbf0a2619544a72eadb73f309370bf6682wrowe
cd34a6fbf0a2619544a72eadb73f309370bf6682wrowe <p>これらのディレクティブが有効になるためには、
cd34a6fbf0a2619544a72eadb73f309370bf6682wrowe <code>AllowOverride Options</code> と <code>AllowOverride
cd34a6fbf0a2619544a72eadb73f309370bf6682wrowe FileInfo</code> が有効である必要があることに注意してください。</p>
cd34a6fbf0a2619544a72eadb73f309370bf6682wrowe
cd34a6fbf0a2619544a72eadb73f309370bf6682wrowe <p>CGI プログラムと設定のよりまとまった説明は <a
cd34a6fbf0a2619544a72eadb73f309370bf6682wrowe href="cgi.html">CGI チュートリアル</a>を参照してください。</p>
cd34a6fbf0a2619544a72eadb73f309370bf6682wrowe
cd34a6fbf0a2619544a72eadb73f309370bf6682wrowe</section>
cd34a6fbf0a2619544a72eadb73f309370bf6682wrowe
cd34a6fbf0a2619544a72eadb73f309370bf6682wrowe<section id="troubleshoot"><title>問題解決</title>
cd34a6fbf0a2619544a72eadb73f309370bf6682wrowe
cd34a6fbf0a2619544a72eadb73f309370bf6682wrowe <p>設定ディレクティブを <code>.htaccess</code> ファイルに書いたけれども、
c8c717fafa0a09ed13469a603a178921b851dd22igalic 期待した効果が得られないときには、いくつかの原因が考えられます。</p>
cd34a6fbf0a2619544a72eadb73f309370bf6682wrowe
cd34a6fbf0a2619544a72eadb73f309370bf6682wrowe <p>一番よくあることは、設定ディレクティブが考慮されるようには
cd34a6fbf0a2619544a72eadb73f309370bf6682wrowe <directive module="core">AllowOverride</directive> が設定されていない
cd34a6fbf0a2619544a72eadb73f309370bf6682wrowe というものです。該当のファイルのスコープに <code>AllowOverride None</code>
cd34a6fbf0a2619544a72eadb73f309370bf6682wrowe が設定されていないことを確認してください。これを調べるための良い方法は、
cd34a6fbf0a2619544a72eadb73f309370bf6682wrowe <code>.htaccess</code> ファイルにごみを書いて、リロードすることです。
c8c717fafa0a09ed13469a603a178921b851dd22igalic サーバのエラーが生成されないときは、ほぼ確実に <code>AllowOverride
cd34a6fbf0a2619544a72eadb73f309370bf6682wrowe None</code> が設定されている状態になっています。</p>
cd34a6fbf0a2619544a72eadb73f309370bf6682wrowe
cd34a6fbf0a2619544a72eadb73f309370bf6682wrowe <p>そうではなく、文書をアクセスしようとしたときにエラーが発生している
7ffcb32836c716e53b7f4b856ee16d9139b8d3bdsf ときは、Apache のエラーログを調べてください。<code>.htaccess</code> ファイルで
7ffcb32836c716e53b7f4b856ee16d9139b8d3bdsf 使用されたディレクティブが許可されていない、ということを知らせている
7ffcb32836c716e53b7f4b856ee16d9139b8d3bdsf 可能性が高いです。または、構文の間違いがあることを述べているかもしれません。
7ffcb32836c716e53b7f4b856ee16d9139b8d3bdsf その場合にはまずそれを修正する必要があります。</p>
7ffcb32836c716e53b7f4b856ee16d9139b8d3bdsf
7ffcb32836c716e53b7f4b856ee16d9139b8d3bdsf</section>
7ffcb32836c716e53b7f4b856ee16d9139b8d3bdsf
cd34a6fbf0a2619544a72eadb73f309370bf6682wrowe</manualpage>
cd34a6fbf0a2619544a72eadb73f309370bf6682wrowe