2009-11-30 69 views
1

我想讓Apache mod重寫在我的本地機器上工作。我使用PHP 5運行OSX,並啓用了Apache mod重寫模塊。爲什麼這個Apache modrewrite RewriteRule不工作?

我有一個名爲localhost /〜Jason/hfh/admin的目錄,其中包含基於$ _GET變量調用的各種PHP。我想讓用戶類型(理論上)

localhost/~Jason/hfh/admin/pages 

,並有URL留在地址欄,而得到什麼顯示是

localhost/~Jason/hfh/admin/?admin=pages 

所以。

我創建了一個位於/ hfh目錄中的.htaccess文件。在內部,我已經把這個MOD改寫文本:

RewriteEngine On 
RewriteRule ^admin/([^/.]+)/?$ admin/?admin=$1 [L] 

當我去到瀏覽器,鍵入

localhost/~Jason/hfh/admin/pages 

我得到一個「問題加載頁面」的錯誤,和Firefox說:「哎呀。由於某些原因,Firefox無法加載此頁面。「

任何人都可以幫我解決這個問題嗎?我用正則表達式和國防部重寫這麼難......

+0

如果mod_rewrite正在崩潰,那麼在錯誤日誌中應該有一些東西 - 可能在/ var/log/apache2/error_log中(或者至少這是它在我的Mac上的位置)。 – SimonJ 2009-11-30 01:52:04

+0

是的,這是從error_log的行:[Sun Nov 29 20:46:29 2009] [error] [client :: 1] File does not exist:/ Users/Jason/Sites/hfh/admin/pages – rhodesjason 2009-11-30 01:57:57

回答

0

試着在你的RewriteRule中明確寫出index.php。

RewriteRule ^admin/([^/.]+)/?$ admin/index.php?admin=$1 [L] 

您也可能會發現它是清潔的組織,只是這個指令移到/管理/本身就是一個.htaccess文件,因此消除了在規則的重複,使規則更容易日後查找。

+0

I added index.php(雖然你不應該,對嗎?),但仍然沒有改變。我很樂意將這條規則放到/ admin /中,如果它有效的話,但我想先讓它工作! – rhodesjason 2009-11-30 01:48:41

+0

嘗試添加RewriteBase – yoda 2009-11-30 01:51:51

+0

我已經在那裏有RewriteBase,它沒有任何區別。我有:RewriteBase localhost /〜Jason/hfh/ – rhodesjason 2009-11-30 01:58:54

0

到目前爲止,答案似乎是:你不能在本地主機上使用mod-rewrite。