2009-10-24 91 views
0

在httpd.conf文件中我有AllowOverride FileInfo。在我的網絡服務器的頂級.htaccess文件與所有其他文件,我有這個:Apache Url重寫不起作用

RewriteEngine On 
RewriteRule ^downloads/?$ index.php?page=downloads [L,NC] 

但它不起作用。 mywebsite/downloads和mywebsite/downloads /總是給404找不到。任何想法爲什麼?謝謝。 (mywebsite/index.php?page = downloads does work)。

而且我每次更改它時都會重新啓動apache。

當我把上面的代碼放在httpd.conf中時,網站永遠都不會加載,只是空白,永遠都在旋轉safari輪子。

它的罰款,如果我只是做RewriteEngine On,但如果我做任何事情(RewriteBase,重寫規則),Web瀏覽器支出年齡試圖加載並最終給這個錯誤:

Safari can’t open the page 「 http://mk12.gotdns.com/ 」 because the server where this page is located isn’t responding.

任何人有任何的想法是什麼錯誤?

編輯:我可以使,例如,禁止重寫的CSS文件,它的工作原理,但任何從下載到index.php?page = downloads的規則使服務器不響應(見上文) ,什麼頁面都沒關係,網站根本不會加載。有任何想法嗎..?

+0

當某些重寫規則看起來不錯但不起作用時,我最後添加了一個[R]。 如果重定向沒有發生,則第一部分不正確。 如果重定向發生但不如預期,第二部分不正確 – w35l3y 2009-10-24 20:35:53

+0

我添加了R標誌,它仍然是404錯誤。 – mk12 2009-10-24 20:39:19

+0

它說'下載'是404還是'索引'? – random 2009-10-25 01:57:10

回答

0

它工作了!我把代碼放在了錯誤的地方。它在httpd.conf中,但在最後。把它移到<目錄>和它的好。謝謝你的幫助!

編輯:另外,我發現它不會工作,如果旗幟是這樣的:[L, NC]。它必須是[L,NC](不含空格)。

因此,它不在<目錄「/ Library/WebServer/Documents」>內的兩個問題,並且標誌之間有空格。希望這將有助於未來的其他人。

0

有你累加在前面的斜線「下載」像下面

RewriteRule ^/downloads/?$ index.php?page=downloads 

編輯:試試下面的代碼:

RewriteEngine On 
RewriteBase/
RewriteRule ^downloads/?$ /index.php?page=downloads 
+0

它沒有工作。 – mk12 2009-10-24 20:42:32

+0

嘗試徹底刪除「^ /」部分(僅用於測試當然)。如果確實有效,那麼您可能必須將基本路徑設置爲「/」。 – BYK 2009-10-24 20:46:05

+0

我已經試過了。 – mk12 2009-10-24 20:53:40

1

調試重寫規則最好的辦法是使重寫日誌記錄,以便您可以查看發生了什麼問題。

+0

在/ private/var/log/apache2/error_log文件中,我得到:[[Sat Oct 24 16:42:05 2009] [error] [client 10.0.1.1]文件不存在:/ Library/WebServer /文件/ downloads'。 – mk12 2009-10-24 20:44:52

+0

這意味着你的模式不匹配。 – BYK 2009-10-24 20:50:17

0

我會嘗試刪除下載後的尾部斜線和問號,以及index.php之前的斜線。

RewriteEngine On 
RewriteBase/
RewriteRule ^downloads$ index.php?page=downloads. 
+1

我假設最後一段時間是一個錯字? – mk12 2009-10-25 00:44:55

+0

仍然無法正常工作。 – mk12 2009-10-25 00:46:47