読者です 読者をやめる 読者になる 読者になる

htaccessで使用可能なディレクティブについて

apache

htaccessにディレクティブを記述して/hogeへのアクセスの場合のみBasic認証をかけようとしたんだけど、いくらやってもInternal Server Errorとなる。

「htaccess location」でググればすぐに原因解決するだろうと思いきや、htaccessではlocationが使えねーよ、と嘆いている記事がほとんど見当たらず。

Apache チュートリアル: .htaccess ファイル - Apache HTTP サーバ バージョン 2.2
本家の記事を見てもそれらしきことが書いていない。

たださらに深く調べたところ、やはり少なくともapache2.2系ではhtaccessにLocationやLocationMatchは使えないらしいのでそう理解しておく。

なお、htaccessを有効にするためにはhttpd.confで「AllowOverride All」になっていることが前提。AllowOverrideはDirectoryディレクティブでしか設定できない。Allではなくても「AuthConfig」や「FileInfo」などディレクティブを限定して設定することも可能。

参考サイト
.htaccessについてまとめた - Qiita
「.htaccess」ファイルを有効にする方法 – No:570 – Linuxで自宅サーバ構築(新森からの雑記)
.htaccessでユーザ認証後、ユーザによって開くページを変えるには?
サブディレクトリで異なるユーザでBasic認証、Digest認証をかける - 発声練習
kota-dev: hetemlの.htaccessでLocationディレクティブが使えない