Regex 删除尾随的反斜杠会移动到子目录的前面

Regex 删除尾随的反斜杠会移动到子目录的前面,regex,apache,.htaccess,mod-rewrite,Regex,Apache,.htaccess,Mod Rewrite,我将这一行添加到.htaccess文件中以删除尾随的反斜杠: RedirectMatch 301 ^(.*)/$ /$1 但它会导致反斜杠移到子目录的后面(域的前面) 因此,如果我键入:localhost/subfolder/ 进入地址栏并按enter键,结果如下: localhost//subfolder 我也试过了 RewriteRule^(+)/$/$1[R=301,L] 但这也有同样的问题(和其他问题)。任何人都知道为什么会这样。谢谢你的阅读 p、 我使用的是apache2.4.4

我将这一行添加到.htaccess文件中以删除尾随的反斜杠:

RedirectMatch 301 ^(.*)/$ /$1 
但它会导致反斜杠移到子目录的后面(域的前面)

因此,如果我键入:
localhost/subfolder/

进入地址栏并按enter键,结果如下:

localhost//subfolder
我也试过了

RewriteRule^(+)/$/$1[R=301,L]

但这也有同样的问题(和其他问题)。任何人都知道为什么会这样。谢谢你的阅读


p、 我使用的是apache2.4.4,因为重定向匹配中的URI以斜杠开头,所以可以使用以下规则:

RedirectMatch 301 ^(.*)/$ $1 
但更好的方法是使用
mod\u rewrite
规则将目录从该规则中排除:

RewriteEngine On

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

嘿,谢谢,我用了复接器,它工作得很好,我以前的那个一直搞砸。但这是完美的。非常感谢你的回答是斜杠(或正斜杠)。\是反斜杠。请使用正确的术语。