我今天在 Centos 7.3 上运行 httpd 时遇到了这个问题。我们对 apache 生成的 HTML 文档进行了大量原始获取以供文件下载。显然,如果文件名有冒号,apache 会在 HTML 中的文件名前加上“./”。这绊倒了我们的脚本:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2 Final//EN">
<html>
<head>
<title>Index of /some_path/dir</title>
</head>
<body>
<h1>Index of /some_path/dir</h1>
<pre><img src="/icons/blank.gif" alt="Icon "> <a href="?C=N;O=D">Name</a> <a href="?C=M;O=A">Last modified</a> <a href="?C=S;O=A">Size</a> <hr><img src="/icons/back.gif" alt="[PARENTDIR]"> <a href="/some_path">Parent Directory</a>
<img src="/icons/text.gif" alt="[TXT]"> <a href="./file1:has_colon.bios">file1:has_colon.bios</a> 2018-04-03 07:13 234K
<img src="/icons/text.gif" alt="[TXT]"> <a href="./file2:has_colon.bios">file2:has_colon.bios</a> 2018-04-03 07:13 234K
<img src="/icons/text.gif" alt="[TXT]"> <a href="file3_has_no_colon.bios">file3_has_no_colon.bios</a> 2018-04-03 07:13 234K
<hr></pre>
</body></html>
有人知道为什么吗?它正在执行某种名称强制执行吗?而且,我可以关掉它吗?
编辑
正如下面所指出的,这是由于 URI 命名约定。我发现以下内容有助于开始理解: https ://stackoverflow.com/questions/176264/what-is-the-difference-between-a-uri-a-url-and-a-urn
这样做是为了防止相对URI 被误解为具有未知方案的绝对URI。这不是您想要关闭的东西,因为破损会更糟。修复你的脚本来处理这个问题应该是微不足道的。