我的.htaccess工作,它做我想要的,但当我写一个不存在的文件到地址栏,它给我500内部服务器错误,而不是404找不到.你能帮助我,为什么?
RewriteEngine ON
RewriteCond %{REQUEST_URI} !/?exception\.php [NC]
RewriteCond %{REQUEST_URI} !^/admin [NC]
RewriteCond %{THE_REQUEST} \s/([^.]*)\.php/?\s [NC]
RewriteRule ^ /%1? [R=301,L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^([^/]*)/?$ $1.php [QSA,L]
RewriteCond %{THE_REQUEST} \s/new\.php\?article=(\S+)\s [NC]
RewriteRule ^ /news/%1? [R=301,L]
RewriteRule ^news/([^/]*)$ new.php?article=$1 [NC,QSA,L]
RewriteCond %{THE_REQUEST} \s/category\.php\?catid=(\S+)\s [NC]
RewriteRule ^ /news/categories/%1? [R=301,L]
RewriteRule ^news/categories/([^/]*)$ category.php?catid=$1 [NC,QSA,L]
1条答案
按热度按时间wvt8vs2t1#
您的第二条规则似乎是为每个不存在的URI写入
.php
的罪魁祸首。您可以在站点根目录.htaccess中尝试以下代码:
请注意最后一条规则,该规则仅为具有匹配的
.php
文件的URI添加.php
扩展名。