XAMPPで.htaccessを利用すると500Errorになる理由


投稿日:2014年5月17日
  • 6
  • 0



Apache用の設定ファイルはhttpd.confだけではなかった

apache_xampp

XAMPPで.htaccessを利用すると500Errorになる場合の対処法を以前の投稿「WordPress、XAMPP、WindowsXPで.htaccessがエラーになる場合の対処法」で紹介しました。

Linux上でサーバを構築する際には必要のない設定がなぜXAMPPで必要なのか、腑に落ちなかったので調べてみました。


以前紹介した対処法

C:\xampp\apache\conf\httpd.conf」の最終行にて以下の記述をすると「.htaccess」が正常に認識されます。

<Directory C:/xampp/htdocs/xampp>
    AllowOverride All
</Directory>

そもそもAllowOverrideDirectoryディレクティブに対し、設定の上書きを許可するかどうかを指定するオプションです。
手っ取り早くAllowOverride Allとすると記述したディレクトリ以下で「.htaccess」を使ったアクセス制御が可能になります。

httpd.conf」を上から見ていくと、195行目あたり「<Directory />」にて一度「AllowOverride None」とされています。

その設定のすぐ後に「<Directory "C:/xampp/htdocs">」でAllowOverride Allが記述されているため、実質ドキュメントルートでの上書きを許可する形になっています。

その後ずっと下がって350行目あたり「<Directory "C:/xampp/cgi-bin">」にて再びAllowOverride Noneとなっているが、これはCGIプログラムのディレクトリなので通常のサイトには影響はないはずです。

以上でAllowOverrideに関する記述は終わリです。

ここである疑問が。
なぜ最終行にAllowOverride Allを書かないと.htaccessによる制御が行えないのか?

通常httpd.confの設定は下の行に記述すると上書きされます。そこで、どこかに怪しい挙動をする設定はないかなと1つ1つ見ていくと、460行目あたり気になる行を発見。

# XAMPP specific settings
Include "conf/extra/httpd-xampp.conf"

httpd-xampp.conf」の中を見てみると66行目あたりに以下の記述を発見

<Directory "C:/xampp/htdocs/xampp">
    <IfModule php5_module>
    	<Files "status.php">
    		php_admin_flag safe_mode off
    	</Files>
    </IfModule>
    AllowOverride AuthConfig
</Directory>

…こいつだ!

XAMPP用の設定ファイルがデフォルトで用意されているんですね。

XAMPPはサーバ環境を一括で設定するようになっていますが、やはりソフトごとに設定を理解しておかないと、いざという時に応用が効かないですね。

無事ここで「AllowOverride All」とすることで「.htaccess」が認識されるようになりました。


現在のページを共有する



現在のページに関連する記事

XAMPPで.htaccessを利用すると500Errorになる理由 XAMPPのApacheでエラーが出た際の対処法
XAMPPで.htaccessを利用すると500Errorになる理由 XAMPP1.8.2でCGIプログラムを実行する方法
XAMPPで.htaccessを利用すると500Errorになる理由 WordPress、XAMPP、WindowsXPで.htaccessがエラーになる場合の対処法
XAMPPで.htaccessを利用すると500Errorになる理由 最新のXAMPPをインストールし、安全・高速に運用する方法
XAMPPで.htaccessを利用すると500Errorになる理由 Apacheで拡張子が「.html」のファイル内でPHPを実行する方法
XAMPPで.htaccessを利用すると500Errorになる理由 XAMMP導入時にApacheのVirtualHostを設定する方法
XAMPPで.htaccessを利用すると500Errorになる理由 ロリポップ!で起きている大規模な改ざんからWordPressサイトを守る方法

おすすめの記事

自前の国別IPv6、IPv4アドレス割当リストを作成しよう

自前の国別IPv6、IPv4アドレス割当リストを作成しよう

公式ドキュメントよりも詳しいTinyMCEの使い方(基本編)

公式ドキュメントよりも詳しいTinyMCEの使い方(基本編)

プロ根性のあるデザイナーやブロガーにお勧めする4つの画像編集ソフト

プロ根性のあるデザイナーやブロガーにお勧めする4つの画像編集…

メールのエラーコードと、メールサーバのmaillog解析方法まとめ

メールのエラーコードと、メールサーバのmaillog解析方法まとめ

iptablesで設定したパケットフィルタリングが正しく動作しているかテスト

iptablesで設定したパケットフィルタリングが正しく動作してい…

インストールだけじゃない!yumの設定から便利な使い方まで徹底的に解説

インストールだけじゃない!yumの設定から便利な使い方まで徹底…

ユーザーの環境変数を設定するbashの設定ファイルと、カスタムプロンプトについて

ユーザーの環境変数を設定するbashの設定ファイルと、カスタム…

DNS Amp攻撃の解説と、踏み台にされないためのBIND DNSの設定

DNS Amp攻撃の解説と、踏み台にされないためのBIND DNSの設定


コメントを残す

コメントは認証制のため、すぐには反映されません。

プログラミングに関する質問は「日本語でプログラミングの悩みを解決するQ&Aサイト sukegra」をご利用ください。