Regex mod_重写目录的尾部斜杠,并删除文件url的尾部斜杠

Regex mod_重写目录的尾部斜杠,并删除文件url的尾部斜杠,regex,.htaccess,mod-rewrite,server-side,Regex,.htaccess,Mod Rewrite,Server Side,嗯。我在尝试删除文件url中的最后一个斜杠时遇到了这个问题,例如http://domain.com/styles/styles.css/。我得到了在末尾添加斜杠的代码,但我不知道如何执行条件语句 如果URL有extesion,则删除结束斜杠 否则添加斜杠 我现在得到的一些博客说这是解决方案,但仍然没有达到我的预期 RewriteCond %{REQUEST_URI} !\.[^./]+$ RewriteCond %{REQUEST_URI} !(.*)/$ RewriteRule ^(.*)([

嗯。我在尝试删除文件url中的最后一个斜杠时遇到了这个问题,例如
http://domain.com/styles/styles.css/
。我得到了在末尾添加斜杠的代码,但我不知道如何执行条件语句

如果URL有extesion,则删除结束斜杠 否则添加斜杠

我现在得到的一些博客说这是解决方案,但仍然没有达到我的预期

RewriteCond %{REQUEST_URI} !\.[^./]+$
RewriteCond %{REQUEST_URI} !(.*)/$
RewriteRule ^(.*)([^/])$ http://%{HTTP_HOST}/$1$2/ [L,R=301]
当我键入
http://domain.com/index
转到
http://domain.com/inde/

需要你们的帮助。。提前非常感谢。

在htaccess中添加以下代码,以便更好地理解

RewriteCond %{HTTP_HOST} !^\.yourdomain\.com$ [NC]
RewriteRule ^(.+)/$ http://%{HTTP_HOST}/$1 [R=301,L]

I have a link : domain.com/folder/
it will change to : domain.com//folder

您还可以通过包含directorysash off来关闭mod_dir的重定向。

为什么要对此类“家具”文件执行外部重定向?你肯定想要一个内部重定向

Options     -MultiViews

RewriteCond %{REQUEST_URI} !-d
RewriteRule ^(.+)/$        $1         [L]

如果不使用mutliviews,我建议您关闭它,因为这会生成子请求,使事情变得混乱。

您的
RewriteCond
条件在逻辑上是颠倒的,因为您有
操作员在那里。因此,重写只适用于那些没有扩展名,也没有尾随斜杠的输入

您可以使用单个规则执行此操作,无需任何条件:

# Match any sequence of characters, ending in a dot followed
# by one or more characters that don't contain dots or slashes,
# followed by a final trailing slash.
#
# Rewrite this absolutely and treat as redirect.

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

和你一样的问题这有什么意义?它总是匹配的,因为你永远不会得到一个域名“
.yourdomain.com
”。顺便问一下,除了网站本身写得很糟糕的HTML之外,为什么还有什么东西会引用
style.css/
?您真正需要修复斜杠的唯一时间是针对根页面,如
http://example.com/coolproject
。为什么不修复HTML,它需要一个带有额外斜杠的样式表?通过允许
style.css/
工作,可以将文件引用为目录。