• ベストアンサー

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] どのようにしたらいいですか? アドバイスお願い致します。

質問者が選んだベストアンサー

  • ベストアンサー
  • qaaq
  • ベストアンサー率36% (146/404)
回答No.3

#1 さんも書いていますが、 ”設定したけど、うまく行かない”だけでは、解決になりませんよ。 少なくても、アクセスログ、場合によってはデバックログ等を取得して どこが間違っているか自分で見つけなければなりません。 ひょっとしてたら、mod_rewrite が読み込めていない可能性もあるし。 まず、こんなところからやってみましょう。 RewriteLog "/usr/local/var/apache/logs/rewrite.log"

tetsu-jin
質問者

お礼

> ひょっとしてたら、mod_rewrite が読み込めていない可能性もあるし。 VirtualHostとmod_rewriteを併用していたのが原因でした。 併用するときは<VirtualHost></VirtualHost>の間に入れないといけないんですね。 ありがとうございました。

tetsu-jin
質問者

補足

ご回答、ありがとうございます。 >”設定したけど、うまく行かない”だけでは、解決になりませんよ。 その通りですよね。まだまだ初心者なので切り分ける方法が分からなくてすいません。 RewriteLogの設定を入れてから色々試した後にrewrite.logを見たのですが、空でした。 アクセスログもOn時とOff時とで比較したのですが特に差はありませんでした。 読み込めてないとしたら、Apacheを再インストールすれば回避できるでしょうか?

すると、全ての回答が全文表示されます。

その他の回答 (2)

  • qaaq
  • ベストアンサー率36% (146/404)
回答No.2

試していませんが、 RewriteCond %{REMOTE_ADDR} ^192\.168\.1\.* じゃだめですか?

tetsu-jin
質問者

お礼

ご回答、ありがとうございます。 *とかPCのアドレスを入力してもアクセスできてしまいました。 コマンド間違えも考え、色々なコマンドを試してみましたが出来ませんでした。

すると、全ての回答が全文表示されます。
回答No.1

デバッグのためにログを取得してはいかがでしょうか? それを見るとどのように条件がチェックされているかが分かりますので。

tetsu-jin
質問者

補足

ご回答、ありがとうございます。 初歩的なことですいません。どのログを取ったらいいか教えていただけますか? よろしくおねがいします。

すると、全ての回答が全文表示されます。

専門家に質問してみよう