Apache .htaccess:如何在URL中添加缺少的尾部斜杠,但忽略文件和特殊URL?

黑b

由于如果缺少斜杠,我的Web项目有时会抛出404,所以我一直希望服务器将斜杠添加到URL。因此,我在.htaccess中使用了以下模式:

# ################################## #
#      Redirect URLs which are not files to their trailing slash equivalent #
# ################################## #
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^(.*)([^/])$ /$1$2/ [L,R=301]

看起来不错,但后来我意识到链接就像

http://www.my-awesome-website.com/theme/base.css?ver=1995

正在转换为

http://www.my-awesome-website.com/theme/base.css/?ver=1995

这显然是不可取的,这会使网站中断。我该如何重写此规则,以确保不包含对文件的任何请求(.php,.jpg,.html等)?

阿努巴瓦

您可以尝试以下规则(假设您的非文件请求中没有点):

RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^([^.]+)([^./])$ %{REQUEST_URI}/ [L,R=301,NE]

确保在新的浏览器中对此进行测试,以避免旧的缓存。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章