在斜杠和非斜杠版本的.htaccess中重写条件会抛出状态代码500

问题描述 投票:0回答:1

我们正在尝试在.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规则是否正确实施?

apache .htaccess redirect server url-redirection
1个回答
0
投票

您的规则不正确,因为它还将不存在的文件目录重写为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]
© www.soinside.com 2019 - 2024. All rights reserved.