2011-08-19 39 views

回答

0

因爲您以這樣的方式編寫了您的規則,因此他們創建了無限重寫循環哪些Apache必須在某些時候中斷,因此會發生500內部服務器錯誤。如果你檢查你的錯誤日誌,你會看到確切的錯誤信息。

[L]標誌不一定意味着「重寫完成」 - 它只是意味着「重寫在這個迭代上完成 - 從開始重新開始」。

非常有用的信息:RewriteRule Last [L] flag not working?

解決你的問題 - 你需要添加一些條件,使已重寫規則沒有得到一次又一次的改寫。這些規則應該爲你做的工作(可能的解決方案之一 - 這一切都取決於你如何實際項目設置):

RewriteEngine on 
RewriteBase/

RewriteCond %{REQUEST_URI} !^/public/ 
RewriteRule ^(.*)$ public/$1 [L] 

有了這個規則,如果URL已被重寫或/public/開始直線距離那麼不會發生額外的重寫。

+0

@ user311129所以..它是否適合你? – LazyOne