2009-11-05 3 views
0

Я мои PHP файлы хранятся под FreeBSD в этом каталоге:Как мне заставить mod_rewrite работать в моем домашнем каталоге?

/home/david/public_html/code/php 

В моем браузере я доступ к ним через этот URL:

http://192.168.6.7/~david/code/php 

И у меня есть файл Htaccess переписать URL-адреса:

RewriteEngine on 
RewriteRule ^test test.php 

Но когда я иду в http://192.168.6.7/~david/code/php/test в браузере, я получаю эту ошибку:

Not Found 

The requested URL /home/david/public_html/code/php/test.php 

Как вы можете видеть, правило перезаписи успешно пытается перенаправить тест на test.php. Но по какой-то причине он терпит неудачу.

Я нашел это в моем апача журнал ошибок:

File does not exist: /usr/local/www/data/home 

Кто знает, как это исправить? Кстати, если я помещаю это в веб-каталог, а не в мой домашний каталог, все работает нормально.

ответ

5

Установить базовый URL путь к /~david/code/php/ с RewriteBase:

RewriteBase /~david/code/php/ 

Вы также должны четко установить UseDir в public_html. См. Также Per-user web directories in the Apache manual.

+0

Спасибо! Это сработало. Но теперь мне нужно отслеживать 2 файла htaccess. Один для моего каталога и один для производственного каталога. В идеале apache должен иметь способ установить RewriteBase в каталог, в котором находится файл .htaccess. –

+0

@David Barnes: вы можете поместить эту директиву в раздел конфигурации вашего виртуального хоста. – Gumbo

Смежные вопросы