- ベストアンサー
mod_rewriteが効かない!
サーバの運用上、mod_rewriteを使う必要が出来たので設定してみたのですが効きません。 FreeBSD4.11+Apache1.3.33で httpd.confファイルに直接書き込んで試しています。 LoadModule rewrite_module modules/mod_rewrite.so AddModule mod_rewrite.c のどちらも書いてあるにもかかわらず、下記のテスト設定を試してみたらローカルIPからアクセス出来てしまいます。 RewriteEngine on RewriteCond %{REMOTE_ADDR} ^192\.168\.1\. ←ローカルネットワークのアドレス RewriteRule ^.*$ - [F] どのようにしたらいいですか? アドバイスお願い致します。
- みんなの回答 (3)
- 専門家の回答
質問者が選んだベストアンサー
#1 さんも書いていますが、 ”設定したけど、うまく行かない”だけでは、解決になりませんよ。 少なくても、アクセスログ、場合によってはデバックログ等を取得して どこが間違っているか自分で見つけなければなりません。 ひょっとしてたら、mod_rewrite が読み込めていない可能性もあるし。 まず、こんなところからやってみましょう。 RewriteLog "/usr/local/var/apache/logs/rewrite.log"
その他の回答 (2)
- qaaq
- ベストアンサー率36% (146/404)
試していませんが、 RewriteCond %{REMOTE_ADDR} ^192\.168\.1\.* じゃだめですか?
お礼
ご回答、ありがとうございます。 *とかPCのアドレスを入力してもアクセスできてしまいました。 コマンド間違えも考え、色々なコマンドを試してみましたが出来ませんでした。
- hetarepyon
- ベストアンサー率52% (94/180)
デバッグのためにログを取得してはいかがでしょうか? それを見るとどのように条件がチェックされているかが分かりますので。
補足
ご回答、ありがとうございます。 初歩的なことですいません。どのログを取ったらいいか教えていただけますか? よろしくおねがいします。
お礼
> ひょっとしてたら、mod_rewrite が読み込めていない可能性もあるし。 VirtualHostとmod_rewriteを併用していたのが原因でした。 併用するときは<VirtualHost></VirtualHost>の間に入れないといけないんですね。 ありがとうございました。
補足
ご回答、ありがとうございます。 >”設定したけど、うまく行かない”だけでは、解決になりませんよ。 その通りですよね。まだまだ初心者なので切り分ける方法が分からなくてすいません。 RewriteLogの設定を入れてから色々試した後にrewrite.logを見たのですが、空でした。 アクセスログもOn時とOff時とで比較したのですが特に差はありませんでした。 読み込めてないとしたら、Apacheを再インストールすれば回避できるでしょうか?