私はVistaマシンにApache 2.2を新規にインストールし、mod rewriteを除いてすべてうまくいきました。
のコメントを外しました。
LoadModule rewrite_module modules/mod_rewrite.s
のような単純なものも含めて、どの書き換えルールも機能しません。
RewriteRule not_found %{DOCUMENT_ROOT}/index.php?page=404
私が使用している全てのルールは私のホスティングで動作しているので、大丈夫なはずです。そこで質問なのですが、mod rewriteをブロックするような、apacheの設定に隠されたものはありますか?
私の状況では、私は
RewriteEngine On
を.htaccess
に記述し、モジュールをロードしていたのですが、うまくいきませんでした。
私の問題を解決するには、私のvhostエントリーを編集して、次のものを含めるようにしました。
AllowOverride all
を追加することで解決しましたが、問題のサイトの <Directory>
セクションには
mod_rewrite.soではなく、mod_rewrite.sと言っていることに気づきました。:)
私はLinuxでApacheを使うことに慣れていますが、先日これをしなければなりませんでした。
まず最初に、Apacheのインストールディレクトリを見てみましょう。(ここではC:Program Files"にインストールしたと仮定しています)
C:Program Files\Apache Software Foundation%Apache2.2%modules"というフォルダを見て、mod_rewrite.soというファイルがあることを確認してください。(デフォルトインストールの一部として提供されているので、あるはずです。
次に、"C:Program Files\Apache Software Foundation\Apache2.2\conf"を開き、httpd.confを開きます。の行を確認してください。
#LoadModule rewrite_module modules/mod_rewrite.so
がコメントアウトされていることを確認してください。
LoadModule rewrite_module modules/mod_rewrite.so
また、デフォルトでRewriteEngineを有効にしたい場合は、次のように追加するとよいでしょう。
<IfModule mod_rewrite>
RewriteEngine On
</IfModule>
を httpd.conf ファイルの最後に追加してください。
そうでない場合は、必ず次のように指定してください。
RewriteEngine On
を指定してください。