2009-11-05 75 views
0

我已經存儲在我的PHP文件在FreeBSD下這個目錄下:如何讓mod_rewrite在我的主目錄中工作?

/home/david/public_html/code/php 

在我的瀏覽器,我訪問他們通過這個網址:

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時成功。但由於某種原因,它失敗了。

我發現這個在我的Apache的錯誤日誌文件:

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

任何人都知道如何解決這一問題?順便說一下,如果我把它放在一個web目錄中,而不是我的主目錄,一切正常。

回答

5

設置基本URL路徑/~david/code/php/RewriteBase

RewriteBase /~david/code/php/ 

你也應該明確設置UseDirpublic_html。另見Per-user web directories in the Apache manual

+0

謝謝!有效。但是,我現在必須跟蹤2個htaccess文件。一個用於我的目錄,一個用於生產目錄。理想情況下,apache應該有辦法將RewriteBase設置爲.htaccess文件所在的目錄。 – 2009-11-05 20:42:51

+0

@David Barnes:您可以將該指令放入虛擬主機的配置部分。 – Gumbo 2009-11-05 20:46:59