2011-12-05 26 views
1

我得到一個500內部服務器錯誤具有以下子文件夾:重定向子域不含有的index.php與htaccess的

RewriteCond %{HTTP_HOST} ^data\.mysite\.com$ [NC] 
RewriteRule ^(.*)$ data/$1 [L,QSA] 

--------------- - ??? 當我通過以下替換重寫規則行:

RewriteRule ^(.*)$ data/index.php?r=$1 [L,QSA] 

它的工作原理,但在現實情況下,我不會有一個index.php文件的文件夾中,我將有包含圖片的文件夾...

任何想法?? 原始問題here

+0

500內部錯誤應該在錯誤日誌的詳細信息。這些要求在那裏說了什麼? – pgl

+0

我沒有在該文件夾中的error_log文件! –

回答

1

您的重寫規則正在循環,每次重寫URI時,它都會重新應用於所有規則,直到規則不更改URI。所以,當你要求/東西,重寫規則得到應用和URI更改爲/數據/東西,那麼它是通過重寫引擎反感,那麼它就會被改寫,然後/數據/數據/東西/data/data/data/something等等。最後mod_rewrite將達到它的遞歸限制並返回一個500服務器錯誤。您可以嘗試一些事情來結束循環,假設您真的只想在開始時追加一個單獨的/data/。您可以前添加下面的一個你RewriteRule

RewriteCond %{REQUEST_URI} ^/data 

RewriteCond $1 ^/data