- 2008年11月17日 03:07
(少なくとも)Apache 2.10 では、<DirectoryMatch> ディレクティブ(より上位の)ディレクティブの中身に AccessFile (.htaccess)の有効・無効を切り替える AllowOverride を書いても意味がありません。
これでずいぶんはまりました。
<Location> ディレクティブの場合、次のように AllowOverride すると。
<Location />
AllowOverride All
</Location>
設定読み込み時に
[Mon Nov 17 03:14:14 2008] [warn]
Useless use of AllowOverride in line 2 of /filepath
/filepath の2行目で意味をなさないAllowOverride が出現している。
と警告してくれるのに。<DirectoryMatch> に書いたときには警告してくれません。
むー。
解決策ですが、Matchを書く必要が無かったので、ワイルドカードを使った数個のセクションに分かち書きしました。この場合は通常の <Directory>ディレクティブと同じ評価順序で評価されるので、 AllowOverride を内包することができます。
<Directory> ディレクティブでも正規表現ができますが、その場合は評価順序は <DirectoryMatch> と同じ順位になる模様......
なんともややこしいですね。
おさらいですが、ディレクティブの設定順序は <Directory> → .htaccess → <DirectoryMatch>→ <Files> → <FilesMatch> → <Location> → <LocationMatch> の適応です。
詳しくは Apache > HTTP サーバ > ドキュメンテーション > バージョン 2.2 > セクションの設定#どのディレクティブが使えるの?とその下あたり。
- Newer: 独りぼっちの Social Network
- Older: OpenPNE のユーザーデータを使用して Digest認証