2011-06-01 71 views
2

當我得到http://example.com/not-here我得到一個內部服務器錯誤,而不是404,這裏是我的htaccess文件(它刪除了擴展名,所以abc.php可以作爲example.com/abc而不是example.com訪問/abc.php):htaccess內部服務器錯誤

Options +FollowSymlinks 
RewriteEngine On 
RewriteBase/
RewriteCond %{REQUEST_FILENAME} !-f 
RewriteCond %{REQUEST_FILENAME} !-d 
RewriteRule ^(.+)$ /$1.php [L,QSA] 

DirectoryIndex login.php index.php 

ErrorDocument 403 /error.php?type=403 
ErrorDocument 404 /error.php?type=404 
ErrorDocument 500 /error.php?type=500 

其proberly很簡單的東西,但我不能看到它,任何幫助appriciated

+1

apache日誌裏有什麼? – akond 2011-06-01 13:00:21

+0

@akond:我無法訪問其共享服務器上的日誌 – 2011-06-01 13:45:48

回答

3

我應該在.htaccess如下:

Options +FollowSymlinks 
RewriteEngine On 
RewriteBase/
RewriteCond %{QUERY_STRING} !rewrited 
RewriteCond %{REQUEST_FILENAME} !-f 
RewriteCond %{REQUEST_FILENAME} !-d 
RewriteRule ^(.+)$ /$1.php?rewrited=1 [L,QSA] 

DirectoryIndex login.php index.php 

ErrorDocument 403 /error.php?type=403 
ErrorDocument 404 /error.php?type=404 
ErrorDocument 500 /error.php?type=500 
+0

謝謝@akond +1 – 2011-06-01 17:18:34

1

什麼,當我碰到這個我做的是註釋掉線。註釋掉重寫部分,看看是否有效。要將代碼註釋掉,只需將#作爲第一個字符。這只是將代碼縮小到罪魁禍首。

+0

其導致它的「RewriteRule ^(。+)$ /$1.php [L,QSA]」,有什麼建議嗎? – 2011-06-01 14:37:50

+0

讓我試試看今晚。我在這臺機器上沒有htaccess,直到今天晚上。 anubhava上面的答案對你有幫助嗎? – Justin 2011-06-02 18:23:43

+0

我結束了使用akond的回答 – 2011-06-05 19:47:01

0

internal server error是由你重寫規則的無限循環引起的。

只要改變你的重寫規則,以這樣的:

RewriteRule ^(.+)(?<!\.php)$ /$1.php [L,NC] 

Negative lookbehind (?<!\.php)會阻止多於一個內部重定向