我通过锚标签向用户提供 .pdf 文档。但是,通过锚标记提供完整的文档路径会暴露服务器目录结构。这是一个示例文档位置:mydomain.com/_webstuff/docs/proj03/sub01/111.pdf
我正在尝试创建一个接受“proj03/sub01/111.pdf”部分的 .htaccess,并重定向到上述完整 URI。
那么,HTML 将如下所示:
View <a href="proj03/sub01/111.pdf">111.pdf</a>
这是不工作的htaccess:
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ /fetch.php?f=$1
FETCH.PHP 看起来像这样:
<?php
$f = $_GET['f'];
echo '<meta HTTP-EQUIV="REFRESH" content="0; url=_webstuff/docs/' . $f . '">';
我确信有更好的方法来做到这一点。
编辑:MEA CULPA。我的错误是这样的:我必须在 FETCH.PHP 中的 url 之前添加一个斜杠,如下所示:
新的 FETCH.PHP
<?php
$f = $_GET['f'];
echo '<meta HTTP-EQUIV="REFRESH" content="0; url=/_webstuff/docs/' . $f . '">';
但是...我的设计仍然是错误的,因为该文档在地址栏中显示了真实的文档路径。也就是说,当 .pdf 文档显示在浏览器窗口中时,全限定 URI 就在那里供所有人查看。我太聪明了一半。回到我之前的评论:“我确信有更好的方法来做到这一点。”
建议?