2013-08-25 93 views
0

當我將此代碼放入.htaccess文件中以隱藏.php擴展名時出現一些錯誤,如 服務器錯誤!使用此代碼獲取錯誤

服務器遇到內部錯誤,無法完成您的請求。服務器超載或CGI腳本中有錯誤。

#Remove PHP extension from links 
RewriteEngine On 
RewriteCond %{REQUEST_URI}!(\.[^./]+)$ 
RewriteCond %{REQUEST_FILENAME}!-d 
RewriteCond %{REQUEST_FILENAME}!-f 
RewriteRule (.*)/$1.php[L] 
RewriteCond %{THE_REQUEST}^[A-Z]{3,9}\/([^.]+\.)+php\HTTP 
RewriteRule ^(.+)\.php$/$1[R=301,L] 
+0

也只是一個像這樣一個問題提示 - 只要刪除一些行,直到代碼的工作,你就會知道哪一個是讓你的問題 – Itay

+0

什麼是Apache的錯誤日誌? – leftclickben

+0

請張貼日誌。 – span

回答

0

看起來你從某處複製了這段代碼,但空間並沒有複製它。因此,將標誌以及RewriteCondRewriteRule的第一個和第二個參數拼接在一起。當然,這是無效的語法,會產生500內部服務器錯誤。你可以找到mod_rewrite here的文檔。

修正語法:

#Remove PHP extension from links 
RewriteEngine On 
RewriteCond %{REQUEST_URI} !(\.[^./]+)$ 
RewriteCond %{REQUEST_FILENAME} !-d 
RewriteCond %{REQUEST_FILENAME} !-f 
RewriteRule (.*) /$1.php [L] 
RewriteCond %{THE_REQUEST} ^[A-Z]{3,9}\ /([^.]+\.)+php\ HTTP 
RewriteRule ^(.+)\.php$ /$1 [R=301,L] 
+0

謝謝你Sumurai8 提供之間的空間後,其工作正常 非常感謝。 –