2013-05-25 79 views
1

兩個規則:爲什麼這個htaccess重寫規則失敗?

RewriteEngine on 

RewriteCond %{REQUEST_URI} \.php$ 
RewriteRule \.php$ /PHPTest/AB/index.php [L] 

...這一個:

RewriteEngine on 

RewriteCond %{REQUEST_URI} \.php.*$ 
RewriteRule \.php.*$ /PHPTest/AB/index.php [L] 

...導致此錯誤:

500 Internal Server Error 

爲什麼?

回答

1

您的規則正在生成500 Internal Server Error,因爲您正在導致無限循環,並且當Apache耗盡最大重定向限制時,它會向瀏覽器返回500個http代碼。

如果你要修復它,然後你的代碼改成這樣:

RewriteCond %{REQUEST_URI} !^/PHPTest/AB/index\.php 
RewriteRule \.php$ /PHPTest/AB/index.php [L] 

以上RewriteCond將阻止第1次發生重定向後執行,以/PHPTest/AB/index.php