.htaccess - 删除所有 URL 的尾部斜杠

标签 .htaccess mod-rewrite url-rewriting

我使用了以下规则从所有 URL 中删除尾部斜杠

#remove /
RewriteRule ^(.*)\/(\?.*)?$ $1$2 [R=301,L]

该规则工作正常,除了主页/

它通过

ERR_TOO_MANY_REDIRECTS

我已启用 mod_ rewrite 日志来跟踪规则

10.64.159.12 - - [14/Feb/2018:12:04:16 +0400] [www.mywebpage.com/sid#7effdd821860][rid#7eff00068100/initial] (2) init rewrite engine with requested uri /
10.64.159.12 - - [14/Feb/2018:12:04:16 +0400] [www.mywebpage.com/sid#7effdd821860][rid#7eff00068100/initial] (3) applying pattern '^(.*)$' to uri '/'
10.64.159.12 - - [14/Feb/2018:12:04:16 +0400] [www.mywebpage.com/sid#7effdd821860][rid#7eff00068100/initial] (3) applying pattern '^(.*)\\/(\\?.*)?$' to uri '/'
10.64.159.12 - - [14/Feb/2018:12:04:16 +0400] [www.mywebpage.com/sid#7effdd821860][rid#7eff00068100/initial] (2) rewrite '/' -> ''
10.64.159.12 - - [14/Feb/2018:12:04:16 +0400] [www.mywebpage.com/sid#7effdd821860][rid#7eff00068100/initial] (2) explicitly forcing redirect with http://www.mywebpage.com/
10.64.159.12 - - [14/Feb/2018:12:04:16 +0400] [www.mywebpage.com/sid#7effdd821860][rid#7eff00068100/initial] (1) escaping http://www.mywebpage.com/ for redirect
10.64.159.12 - - [14/Feb/2018:12:04:16 +0400] [www.mywebpage.com/sid#7effdd821860][rid#7eff00068100/initial] (1) redirect to http://www.mywebpage.com/ [REDIRECT/301]

知道为什么它不适用于主页 url 而适用于所有其他页面 url

最佳答案

要删除尾部斜杠,请保留此规则您的第一条规则:

RewriteEngine On

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

关于.htaccess - 删除所有 URL 的尾部斜杠,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48783623/

相关文章:

mod-rewrite - 通过请求的 URL 禁用 mod_security

php - PHP 中的动态 .htaccess 文件

wordpress - 在wordpress中添加重写规则

php - htaccess - 如果 POST 数据不重写 URL

php - 如何让搜索引擎索引我网站上的搜索结果?

.htaccess - RewriteRule 字符数问题

Apache mod_rewrite 继承中的疯狂

wordpress - 使用WordPress的通配符域重定向

apache - 使用 apache 服务器将 tomcat 重定向到 https (Windows)

php - 使用 htaccess 从 URL 中删除 .php