使用.htaccess删除尾部斜杠,主页/登录页除外

使用.htaccess删除尾部斜杠,主页/登录页除外,.htaccess,.htaccess,我已经成功地修改了.htaccess文件以删除大多数页面上的斜杠,但我想知道如何免除我的主页/目录?例如: domain.com/test/成功重定向到domain.com/test 但是,当我访问我的域时,它将附加根文档 domain.com/重定向到domain.com/index.php 我是否可以添加一个条件来忽略根url尾随斜杠,这样它就不会试图删除尾随斜杠并添加默认脚本?以下是我目前掌握的情况: RewriteEngine On RewriteCond %{REQUEST_FILEN

我已经成功地修改了.htaccess文件以删除大多数页面上的斜杠,但我想知道如何免除我的主页/目录?例如:

domain.com/test/成功重定向到domain.com/test

但是,当我访问我的域时,它将附加根文档

domain.com/重定向到domain.com/index.php

我是否可以添加一个条件来忽略根url尾随斜杠,这样它就不会试图删除尾随斜杠并添加默认脚本?以下是我目前掌握的情况:

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

嗯。经过一系列的尝试和错误,我回答了自己的问题

第三行表示URI中必须有某些内容才能执行重定向,因此如果url仅包含初始斜杠,则不会重定向

RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_URI} (.*)$
RewriteRule ^(.+)/$ http://www.domain.com/$1 [R=301,L]
怎么样

RewriteEngine On
RewriteRule ^(.*)/$ http://%{HTTP_HOST}/$1 

重定向对除根以外的所有以
/
结尾的URL的请求:

RedirectMatch 301 ^(.+)/$ $1

而不是
http://www.domain.com/$1
您可以使用
http://www.%{HTTP_HOST}/$1
更好。因此,用户不需要编辑该行并可能出错。@YH的解决方案不适用于子目录中的网站(也不适用于localhost,因为localhost本身之前不能有
www.
)。因此,例如,
localhost/web1/page1/
以错误的方式重定向到
www.localhost/page1
。同样处理http/https。我已将此代码添加到htaccess文件中。工作正常。但我的css文件未加载。此重定向规则仅针对以“/”结尾的URL。我认为这不会影响CSS文件。我在一个实时站点上使用此代码,并且所有文件都正确加载。