2011-08-17 92 views
0

我在共享託管計劃上設置了一個站點,所以我被困在使用Apache和.htaccess文件中。我有2個RewriteRules定義。這兩條規則在運行Apache的本地機器上完美工作。爲什麼我會在這些RewriteRules中出現500錯誤

的第一條規則是重寫爲/ CSS/的.css到/ WWW請求/ CSS/的.css 第二改寫一切以/www/index.php

關於CSS的第一條規則/ JS文件是導致500錯誤,但我不明白爲什麼。我曾嘗試這些規則的每一個不同的化身,總是得到一個500

RewriteEngine on 
RewriteBase/
RewriteRule ^(.*)\.(css|js) www/$1.$2 [L] 
RewriteRule ^(.*)$ www/index.php [L] 
+2

系統管理問題,如配置服務,屬於在http:// serverfault .COM。是的,你可以在這裏找到一些人,這只是因爲沒有足夠的人來移動他們。 –

回答

0

因爲你寫你的規則,這樣的方式,他們創造無限循環重寫其阿帕奇具有在某個點突破,因此500內部服務器錯誤。如果你檢查你的錯誤日誌,你會看到確切的錯誤信息。

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

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

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

RewriteEngine on 
RewriteBase/

RewriteCond %{REQUEST_URI} !^/www/ 
RewriteRule ^(.*)\.(css|js) www/$1.$2 [L] 

RewriteCond %{REQUEST_URI} !^/www/ 
RewriteRule ^(.*)$ www/index.php [L] 
+0

@ user897929所以..我的規定是否適合你? – LazyOne

相關問題