微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

正则表达式 – 为什么Apache删除多个斜杠?

这个RewriteRule

RewriteRule ^ test /(.*)$test.PHP?url = $1

在此URL上

mysite.com/test//one///two////three///

给我这个结果

$1 = URL = ‘一/二/ /’

我正在使用easyPHP,如果它很重要,我想知道为什么Apache在内部删除多个斜杠而不重定向到更正的URL?以及如何禁用或添加重定向到此行为?

预先感谢

似乎有多个斜线违反标准.正如 this post所指出的那样,RFC 1630说:

PATH

The rest of the URI follows the colon in a format depending on the
scheme. The path is interpreted in a manner dependent on the
protocol being used. However,when it contains slashes,these
ust imply a hierarchical structure.

///并不意味着层次结构 – 你有空的文件名称.从那以后我猜想Apache的行为是设计的. (使用多个斜杠也不是一个好主意,因为结果将是无效的URL).

我会改用不同的角色.

原文地址:https://www.jb51.cc/regex/357239.html

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐