【问题标题】:Remove Trailing slashes from all URLs从所有 URL 中删除尾部斜杠
【发布时间】:2018-09-06 02:38:03
【问题描述】:

我使用以下规则从所有 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

【问题讨论】:

  • 试试RewriteCond %{REQUEST_URI} !(/$|\.) RewriteRule (.*) %{REQUEST_URI} [R=301,L]
  • 它现在无法正常工作,并且所有网址都通过 ERR_TOO_MANY_REDIRECTS,

标签: .htaccess mod-rewrite url-rewriting


【解决方案1】:

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

RewriteEngine On

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2013-02-11
    • 2014-06-19
    • 2017-05-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-05-09
    相关资源
    最近更新 更多