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サイトを守る方法

おすすめの記事

Google Adsenseで配信される詐欺的なサイトのブロック用URLまとめ

Google Adsenseで配信される詐欺的なサイトのブロック用URLまとめ

WordPressのサイトをHTTPS化して学ぶLet’s Encryptの使い方

WordPressのサイトをHTTPS化して学ぶLet’s Encryptの使い方

開発の最前線でクリエイター・エンジニアに必要なプログラミング言語

開発の最前線でクリエイター・エンジニアに必要なプログラミン…

ページ編集の手間を劇的に減らす、Custom Field Templateでカスタムフィールドを作る方法

ページ編集の手間を劇的に減らす、Custom Field Templateでカス…

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

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

FuckAdBlockを利用して自由自在にAdblock対策をする方法

FuckAdBlockを利用して自由自在にAdblock対策をする方法

PukiWikiで5段階評価を付けるプラグインを作成しました

PukiWikiで5段階評価を付けるプラグインを作成しました

WordPressに「トップへ戻る」ボタンを設置して、フックの仕組みについて学ぼう

WordPressに「トップへ戻る」ボタンを設置して、フックの仕組み…


コメントを残す

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

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