ぐらめぬ・ぜぷつぇんのはてダ(2007 to 2011)

2007年~2011年ごろまで はてなダイアリー に書いてた記事を引っ越してきました。

Order指示子のdenyとallowをカンマで並べる時、間に空白を入れてはいけない。

Apache2.0の話です。

.htaccessで一時的に特定ディレクトリを完全に403 Forbiddenにしようと思って、

Order deny, allow
deny from all

としたら、

[Sun Apr 13 11:41:34 2008] [alert] .../.htaccess: order takes one argument, \
    'allow,deny', 'deny,allow', or 'mutual-failure'

と怒られました。(つд⊂)

つまり"deny,"と"allow"の間のスペースとかは考慮されて無くて、"allow,deny"と"deny,allow"と"mutual-failure"という文字列をチェックしている。これも実はきっちりApacheのmanualに載っていて・・・

キーワードはコンマで分離することだけが可能です。 間に空白があってはいけません。どの場合でも、Allow と Deny 文は 全て評価されるということに注意してください。

mod_access - Apache HTTP サーバ

見落としがち。ということで、間の空白を削除したら無事403 Forbiddenになりました。