我们正在尝试在.htaccess中设置重定向规则,这样我们每个带有斜杠的URL都会被重定向到非斜杠版本。
我们已经实现了这个代码,我相信应该做的工作:
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)/$ /$1 [L,R=301]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^([^\.]+)$ $1.php [NC,L]
现在发生的事情是,当我尝试访问斜杠版本时,我得到500状态代码。这是网站的URL:plicnivek.cz。我们的.htaccess规则是否正确实施?
您的规则不正确,因为它还将不存在的文件目录重写为PHP。您可以使用以下规则删除尾部斜杠并重写php扩展。
RewriteEngine on
#remove traling slash
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule (.*)/$ /$1 [R=301,L]
#remove .php
RewriteCond %{REQUEST_FILENAME}.php -f
RewriteRule (.+)/?$ /$1.php [L]