環境: Apache 2はMac OS X Leopardに同梱されています。デフォルトのhttpd.confに大きな変更はありません。mod_rewriteでの相対URLの使用
私は.htaccessでいくつかの書き換えを設定していますが、現在のディレクトリからの相対パスは使用できません。
# URL: http://localhost/~davis/rewrite/.htaccess
# File: /Users/davis/Sites/rewrite/.htaccess
RewriteRule go.php target.php
# Not working
私はhttp://localhost/~davis/rewrite/target.php
にユーザーをリダイレクトするルールを期待しています。正しい物理パスに解決していますが、パス/Users/davis/Sites/rewrite/target.php
が存在しないという404というメッセージが表示されます。
完全なURLを指定すると、すべてうまく動作します。
# URL: http://localhost/~davis/rewrite/.htaccess
# File: /Users/davis/Sites/rewrite/.htaccess
RewriteRule go.php /~davis/rewrite/target.php
# Works
ここに何か不足していますか? httpd.confに設定するものは何ですか?
ありがとうございます!
編集:私のライブLinuxサーバーでは、相対URLが正しく動作しています。ローカルのMacボックスに問題があります。ベースURLを調整する
解決策について詳しく説明できますか? – jnthnclrk
デフォルトでは、URL http:// localhost /〜davis /を使用してローカルサイトにアクセスします.davisは自分のユーザー名です。しかし、この設定では、相対RewriteRulesを使用できませんでした。 のDocumentRoot「/ユーザ/デイビス/サイト」 をそして、これは問題を解決しました:私がやったことは、直接私のサイトを指すようにApacheのhttpd.conf内のDocumentRootの設定を変更することでしたがフォルダ。今、http:// localhost /にある自分のローカルサイトに直接アクセスしています。 confファイルは/ etc/apache2/ にあります。 –