当我将此代码放入.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 :(得分:0)
看起来你从某个地方复制了这段代码,但这些空格并没有随之复制。因此,标志以及RewriteCond
和RewriteRule
的第一和第二个参数被拼接在一起。当然,这是无效的语法并产生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]