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]
4

1 回答 1

0

看起来您从某个地方复制了此代码,但空格并没有随之复制。因此,标志以及RewriteCond's 和RewriteRule's 的第一个和第二个参数被缝合在一起。当然,这是无效的语法并产生 500 Internal Server Error。您可以在此处找到 mod_rewrite 的文档。

更正的语法:

#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]
于 2013-08-25T10:59:57.417 回答