I ran in to this today running httpd on Centos 7.3. We do a lot of raw getting of apache-generated HTML docs for file download. Apparently, if a file name has a colon, apache well prepend "./" to the file name within the HTML. This tripped up our scripts:
<!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>
Does anyone know why this is? Is there some kind of name enforcement it's doing? And, can I turn it off?
Edit
As is pointed out below, this is due to URI naming conventions. I found the following helpful for beginning understanding: https://stackoverflow.com/questions/176264/what-is-the-difference-between-a-uri-a-url-and-a-urn
This is done to prevent what is a relative URI from being misinterpreted as an absolute URI with an unknown scheme. It is not something you want to turn off, as the breakage would be even worse. Fixing your script to deal with this should be trivial.