相对 URL 相对于网络上错误的绝对 URL

相对 URL 相对于网络上错误的绝对 URL

背景

我正在建立一个网站。文件如下:

/index.php
/pic.jpg
/dir/index.php
/dir/pic.jpg

dir/index.php我们知道,人们可以使用不同的 URL访问我的网站页面:

1. site.com/dir
2. site.com/dir/ 
3. site.com/dir/index.php

我有一个链接/dir/index.php

<a target="_blank" href="pic.jpg">

我想相对链接到/dir/pic.jpg

问题

---------------------/-------------------------------                    
                             index.php
           pic.jpg
              ^
              |
        ------|-----/dir/------------------------
        |     |                                 |
        |     | 1                               |
        |     |                                 |
        |     |       2 or 3                    |
        | index.php ---------> pic.jpg          |
        -----------------------------------------
-----------------------------------------------------

href="pic.jpg"当人们通过不同的 URL 访问网站时,会将人们引导到不同的地方。

使用 URL 1 的人会得到/pic.jpg,而使用 URL 2 或 3 的人会得到/dir/pic.jpg

同样的问题不只存在于<a>其他 HTML 标签中。

我怎样才能编写一个相对 URL 来/dir/index.php链接到/dir/pic.jpg访问者使用的任何 URL?

我需要保持文件夹dir的可移植性(我可能会更改dir名称,或dir在另一个网站上使用文件夹,因此它可能有不同的路径)。我们需要除硬编码之外的解决方案href="/dir/pic.jpg"

答案1

问题在于您不知何故没有在第一个 URL 中添加尾部斜杠。如果此目录确实存在于您的服务器上,那么您必须故意错误配置 Web 服务器才能执行此操作。您应该撤消该配置,以便服务器将第一个示例重定向到第二个示例(默认)。

相关内容