use*_*217 24 apache .htaccess mod-rewrite redirect rewrite
我将mod_rewrite/.htaccess用于漂亮的URL.
我正在使用这个条件/规则来消除尾部斜杠(或者更确切地说:通过301重定向重写到非尾部斜杠URL;我这样做是为了避免重复内容,因为我喜欢不带尾随斜杠的URL更好):
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{HTTP_HOST} !^\.localhost$ [NC]
RewriteRule ^(.+)/$ http://%{HTTP_HOST}/$1 [R=301,L]
到目前为止运作良好.唯一的缺点是:
它还将"多尾随斜杠"-URL转发给非尾随斜杠网址.
示例:
http://example.tld/foo/bar//////转发到http://example.tld/foo/bar
我只想http://example.tld/foo/bar/转发到http://example.tld/foo/bar.
那么,如果它实际上只是一个斜杠,是否可以只消除尾部斜杠?
对不起,如果这是一个有点烦人或怪异的问题!
谢谢.
ale*_*emb 21
以下规则将匹配以斜杠结尾的任何URL,并从其末尾删除所有斜杠:
RewriteRule ^(.*)/+$ $1 [R=301,L]
Run Code Online (Sandbox Code Playgroud)
注意:当前接受的答案仅适用于http而非https,但这一个适用于两者.
Jon*_*Jon 14
将重写规则更改为:
RewriteRule ^(.+[^/])/$ http://%{HTTP_HOST}/$1 [R=301,L]
Run Code Online (Sandbox Code Playgroud)
英文:匹配字符串的开头,一个或多个任何东西,不是斜线,斜线,结束.
这是一个基于 mod-alias 的解决方案,用于从 url 中删除尾部斜杠:
RedirectMatch ^/(.*?)/$ /$1
Run Code Online (Sandbox Code Playgroud)
您可以在 htaccess 或 server.config 文件中使用上述重定向。
这会将/uri/重定向到 */uri** 。
| 归档时间: |
|
| 查看次数: |
34274 次 |
| 最近记录: |