Использование относительных URL с mod_rewrite - PullRequest
2 голосов
/ 28 августа 2009

Среда: Apache 2 поставляется с Mac OS X Leopard; без больших изменений в httpd.conf по умолчанию.

Я настраиваю некоторые изменения в моем .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. Это разрешает правильный физический путь, но дает мне 404, говоря, что путь /Users/davis/Sites/rewrite/target.php не существует.

Все работает хорошо, если я приведу полный URL.

# URL: http://localhost/~davis/rewrite/.htaccess
# File: /Users/davis/Sites/rewrite/.htaccess

RewriteRule go.php /~davis/rewrite/target.php

# Works

Я что-то здесь упускаю? Что-нибудь для настройки в httpd.conf?

Спасибо!

Редактировать: Относительные URL работают правильно на моем живом сервере Linux. У меня проблемы с локальным компьютером Mac.

Ответы [ 3 ]

1 голос
/ 16 сентября 2009

Понял, наконец-то!

Он начинает работать, если я установлю DocumentRoot в моем каталоге ~ / Sites или создаю VirtualHost для этого пути. Очевидно, что при настройке пользовательского каталога Apache не смог сопоставить физический путь с псевдонимом ~username.

Спасибо всем за ваш вклад!

1 голос
/ 28 августа 2009

Попробуйте настроить базовый URL:

RewriteBase /~davis/rewrite/
0 голосов
/ 28 августа 2009

Вы можете попробовать RewriteBase, но я не думаю, что вы можете что-то сделать.

RewriteBase /~davis/rewrite/
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...