Windows な環境において、 XAMPP でローカルにテスト環境を作成していますが、どうも mod_rewrite が動いているかどうかあやしいのでいろいろテストしてみました。

ちなみに、Apacheは2系(Apache2.X)です。

(1)http.confを確かめる
基本。
LoadModule rewrite_module modules/mod_rewrite.so
となっているか。

×悪い例
#LoadModule rewrite_module modules/mod_rewrite.so

#がついていた場合は、外して、httpd.conf を保存。
Apacheを再起動します。

(2)mod_rewriteがうごいているか確かめる
phpに apache_get_modules() という、Apache がロードしているモジュールを洗い出してくれる便利なメソッドがあります。
なので、これを利用。

<?php
print "<pre>";
print_r(apache_get_modules());
print "</pre>";
?>

と記述して、適当な名前(check.php など)で保存。

アクセスすると
Array
(
[0] => core
[1] => mod_win32
[2] => mpm_winnt
[3] => http_core
[4] => mod_so
[5] => mod_actions
[6] => mod_alias
[7] => mod_asis
[8] => mod_auth_basic
[9] => mod_authn_default
[10] => mod_authn_file
[11] => mod_authz_default
[12] => mod_authz_groupfile
[13] => mod_authz_host
[14] => mod_authz_user
[15] => mod_cgi
[16] => mod_dav
[17] => mod_dav_fs
[18] => mod_dir
[19] => mod_env
[20] => mod_include
[21] => mod_info
[22] => mod_isapi
[23] => util_ldap
[24] => mod_log_config
[25] => mod_mime
[26] => mod_negotiation
[27] => mod_rewrite
[28] => mod_setenvif
[29] => mod_status
[30] => mod_ssl
[31] => mod_autoindex_color
[32] => mod_php5
[33] => mod_perl
)
という感じで表示されます。