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


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



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になる理由 Webサービスの最前線で動作するApache HTTP サーバの初期設定

おすすめの記事

最新のXAMPPをインストールし、安全・高速に運用する方法

最新のXAMPPをインストールし、安全・高速に運用する方法

iptablesの設定ファイルをシェルスクリプトを利用して動的に作成

iptablesの設定ファイルをシェルスクリプトを利用して動的に作成

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

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

W3 Total Cacheの設定を通して学ぶ、WordPressを高速化するキャッシュの仕組み

W3 Total Cacheの設定を通して学ぶ、WordPressを高速化するキャ…

lazysizesの使い方を通して学ぶ、画像の遅延読み込みとレスポンシブイメージの基本

lazysizesの使い方を通して学ぶ、画像の遅延読み込みとレスポン…

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

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

知らなきゃ損!WordPressの表(テーブル)はExcelで作ろう!

知らなきゃ損!WordPressの表(テーブル)はExcelで作ろう!

シンプルなスパムコメント対策プラグイン「Simple AntiSpam」を作成しました

シンプルなスパムコメント対策プラグイン「Simple AntiSpam」を…


コメントを残す

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

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

このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください