2013-08-25 69 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 提供之间的空间后,其工作正常 非常感谢。 –