我一直在努力通過設置重寫規則,所以我可以有更短,更好的URL,我有一個非常ajaxy網站。Apache 500錯誤,重寫引擎和AJAX
我已經有了重寫規則在服務器上工作,並且頁面加載了漂亮的新網址,但是現在所有的ajax現在都被破壞了。 Firefox告訴我它有一個500錯誤。
試圖直接加載頁面,我沒有得到'500錯誤'頁面,但它確實返回'3738',但我不知道這意味着什麼。
所以我檢查apache的日誌,果然
GET /processes/format.php?output=queries HTTP/1.1" 500 33
的問題是,我不知道這是爲什麼壞了。該頁面存在,所以我猜這是重寫url的問題?
我重寫規則是這樣的
RewriteEngine On RewriteCond %{REQUEST_URI} !\.(php|html|css|js|gif|png|jpe?g)$ RewriteRule (.*)$ /index.php [L]
-----------------編輯1 -------------- ---- 所以我得到了錯誤日誌,它看起來像錯誤在重寫過程中不能識別
init rewrite engine with requested uri /processes/format.php applying pattern '(.*)$' to uri '/processes/format.php' RewriteCond: input='/processes/format.php' pattern='!.(php|html|css|js|gif|png|jpe?g)$' => not-matched pass through /processes/format.php
所以我在想這是一個錯誤,重寫規則,作爲!.php應該已經匹配了,除非我正在讀取日誌錯誤。
----------------編輯2 ------------------ 看起來像這可能是2部分錯誤。 第1部分javascript正在加載500錯誤 第2部分頁面未輸出內容。 我已經在頁面中引入了幾個echo,並且URL是可檢索的。不知道3738是從哪裏來的。
由於日誌中顯示「not matched => passed through」,這意味着重寫規則不會被應用,因此可能不會導致錯誤的重寫。 – Torandi 2009-07-15 15:59:43