私はPHPのウェブサイトを開発しています、それは私がmod_rewriteモジュールを有効にしている私のhttpd.confのWindows上のlocalhost上のmod_rewriteと.htaccessのこの設定が機能しないのはなぜですか?
をApacheの2.2上のローカルホスト上で動作し、Windows 7:
LoadModule rewrite_module modules/mod_rewrite.so
私は、ドキュメントをしましたルートはD:\ MyWebにあり、私が作業しているウェブサイトはD:\ MyWeb \ simple_cmsにあります
テスト目的のために、私はD:\ MyWeb \ simple_cmsに.htaccessファイルを置きました。
Options +FollowSymlinks
RewriteEngine on
RewriteRule ^(.*)\.htm$ $1.php [NC]
access.logで0
さて、http://127.0.0.1/simple_cms/index.htmを求めることhttp://127.0.0.1/simple_cms/index.phpに "リダイレクト" 必要がありますが、それは "404エラーが見つかりません"(コースのindex.phpのが存在する)が表示さ
があります:
127.0.0.1 - - [15/Jul/2011:14:16:15 +0200] "GET /simple_cms/index.htm HTTP/1.1" 404 218
内部エラー。ログ:
[Fri Jul 15 14:19:30 2011] [error] [client 127.0.0.1] File does not exist: D:/MyWeb/simple_cms/index.htm
なぜこれが機能しないのですか?この正規表現は無効ですか?
1).htaccessファイルが有効になっていることを確認してください(適切な場所に 'AllowOverride All'を入れてください)。 2)書き換えデバッグ( 'RewriteLogLevel 9')を有効にして、書き換えログをチェックしてください。 – LazyOne
'AllowOverride All' - 基本的に、これが答えでした。私はそれを受け入れることができるので、新しい答えとしてそれを入れてください。ありがとうございました –