2009-12-01 103 views
0

我有我的機器上開發站點在爲什麼這個mod重寫規則不起作用?

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

我的.htaccess文件在/ HFH /管理/目錄。它說:

RewriteEngine On 
RewriteBase /~Jason/hfh/ 
RewriteRule ^([A-Za-z0-9\-\_]*)$ index.php?admin=$1 

但是,當我去

localhost/~Jason/hfh/admin/collections 

我得到一個 「找不到網頁」 的錯誤。誰能告訴我爲什麼?

(這是在this link相關的另一個問題。)

+0

這些是你在.htaccess中唯一的規則嗎? – 2009-12-01 03:19:24

+0

是的,這就是整個.htaccess文件。我在/〜Jason/hfh /目錄中也有一個空白的.htaccess文件。 – rhodesjason 2009-12-01 03:20:41

+0

在本地主機上使用mod-rewrite有問題嗎? – rhodesjason 2009-12-01 03:23:02

回答

0

出現現在的短,直接的答案是:你不能使用你的mod_rewrite本地主機。

0

它看起來像將被髮送到你的頁面/~Jason/hfh/index.php?admin=collections,當你想/〜賈森/hfh/admin/index.php?admin=collections。

嘗試改變規則:

RewriteRule ^([A-Za-z0-9\-\_]*)$ admin/index.php?admin=$1 
+0

問題是,它不是任何地方重定向。瀏覽器告訴我/ Jason/hfh/admin/collections找不到。如果它告訴我/Jason/hfh/index.php?admin=collections找不到,那麼這將是一個不同的問題,如果這是有道理的。 – rhodesjason 2009-12-01 03:11:00

1

如果您有/ HFH /管理.htaccess文件/使該基地開始說起。

RewriteBase /~Jason/hfh/admin/ 

然後你可以看到你的期望。此外,當文件/目錄存在時,您可能會希望子句不重定向。

是否輸入了預期的結果URL的工作?

/~Jason/hfh/admin/index.php?admin=Collections 

編輯:

所以如果你的一大堆改變發生:

RewriteCond %{REQUEST_FILENAME} !-f 
RewriteCond %{REQUEST_FILENAME} !-d 
RewriteRule ^(.*)$ /~Jason/hfh/admin/index.php?admin=$1 [L] 
+0

是的,預期的結果網址起作用。 – rhodesjason 2009-12-01 03:14:39

+0

使用RewriteBase /〜Jason/hfh/admin /(以及將規則切換回不包含「admin /」)仍然會在瀏覽器中出現相同的「頁面未找到」錯誤。它甚至不試圖做重定向。 – rhodesjason 2009-12-01 03:15:54

+0

Simeon - 我改爲你建議的RewriteCond行 - 沒有改變。同樣的錯誤,即使切換到完全不同的瀏覽器來控制緩存。 SO FRUSTRATING – rhodesjason 2009-12-01 03:48:58