RewriteRule
ファイルに.htaccess
何も実行されていない があります。これをトラブルシューティングするにはどうすればよいでしょうか?
- ファイルが Apache によって読み取られ、従われているかどうかをどのように確認すればよいでしょうか
.htaccess
? echo "it is working" メッセージを書き込むことはできますか? 書き込んだ場合、その行はどこにエコー出力されますか? .htaccess
ファイルが使用されていない場合、Apache でそのファイルを使用するにはどうすればよいでしょうか?.htaccess
が使用されているのにRewriteRule
まだ効果がない場合、デバッグするために他に何ができるでしょうか?
ベストアンサー1
htaccessで認識されないキーワードなど、ジャンクな値を入力してURLに.htaccess
アクセスします。動作している場合は、foo bar
sakjnaskljdnas
500内部サーバーエラー
内部サーバーエラー
サーバーで内部エラーまたは構成ミスが発生したため、リクエストを完了できませんでした。
すぐに入れておくことをお勧めしますRewriteEngine on
。
.conf
あなたは自分のマシン上にいるので、Apacheファイルにアクセスできると想定します。
ファイルを開き.conf
、次のような行を探します。
LoadModule rewrite_module modules/mod_rewrite.so
コメント(#)されている場合は、コメントを解除してApacheを再起動します。
ログの書き換え
RewriteEngine On
RewriteLog "/path/to/rewrite.log"
RewriteLogLevel 9
上記の 3 行を に入力しvirtualhost
、httpd を再起動します。
RewriteLogLevel 9
レベルに高い値を使用すると、Apache サーバーの速度が大幅に低下します。 レベル 2 を超える書き換えログファイルはデバッグ時にのみ使用してください。 レベル 9 では、ほぼすべての書き換えログの詳細がログに記録されます。
アップデート
Apache 2.4 では次のような変更が行われました:
の書き換えログそして書き換えログレベルディレクティブは削除されました。この機能は、mod_rewriteモジュールの適切なレベルのログを設定することで提供されるようになりました。ログレベルディレクティブ。mod_rewrite のログセクションも参照してください。
LogLevelの詳細については、LogLevel ディレクティブ
あなたは達成できる
RewriteLog "/path/to/rewrite.log"
このように今
LogLevel debug rewrite_module:debug