我使用mod_rewrite / .htaccess漂亮的url。
我正在使用这个条件/规则来消除尾随斜杠(或者说:通过301redirect重写到非尾随斜杠URL;我这样做是为了避免重复的内容,因为我喜欢没有尾部斜线的URL更好):
RewriteCond%{REQUEST_FILENAME}!-f
RewriteCond%{REQUEST_FILENAME}!-d
RewriteCond%{HTTP_HOST}!^ 。localhost $ [NC]
RewriteRule ^(。+)/ $ http://%{HTTP_HOST} / $ 1 [R = 301,L]
目前运作良好。 唯一的缺点:
它还将“多行尾”斜线-URL转发到非尾行斜线 -URL 。
例:
http://example.tld/foo/bar//////转发到http://example.tld/foo/bar
而我只希望http://example.tld/foo/bar/转发到http://example.tld/foo/bar 。
如何使用.htaccess文件将所有stream量从一个域redirect到另一个域?
CodeIgniter PHP的Apache 500内部服务器错误
查询string和Mod重写
.htaccess 301从旧域redirect到新域,而页和url结构相同
那么,如果实际上只是一个尾随斜线,是否可能只消除尾部的斜线?
对不起,如果这是一个有点烦人或怪异的问题!
谢谢。
RewriteCond在.htaccess否定正则expression式不起作用?
configuration.htaccess以使用PHP框架(Silex)
需要一些Apache的mod重写问题的帮助
Hello World使用mod_wsgi,内部错误,configuration错误
以下规则将匹配任何以斜线结尾的URL,并从其末尾删除所有斜杠:
RewriteRule ^(.*)/+$ $1 [R=301,L]
注意:目前接受的答案只适用于http而不是https,但是这个适用于两者。
将重写规则更改为:
RewriteRule ^(.+[^/])/$ http://%{HTTP_HOST}/$1 [R=301,L]
用英文:匹配字符串的开始,一个或多个任何东西,而不是斜杠,斜线,结尾。
^(.+[^/])/$
也就是说,前角色不能是斜线。
这是一个基于mod-alias的解决方案,用于从URL删除尾部斜杠:
RedirectMatch ^/(.*?)/$ /$1
你可以在你的htaccess或server.config文件中使用上面的重定向。
这将重定向/ uri /到* / uri **。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。