为什么由一个简单的正斜杠组成的 HREF 会指向主页?
Why does an HREF consisting of a plain forward slash direct to the homepage?
我遇到了一个 HTML 锚点,上面写着 <a href="\">Home</a>
。
通常我们会放类似 <a href="index.php">Home</a>
的东西,但是当我点击 <a href="\">Home</a>
时,我可以转到网站的索引页面。
我无法在本地主机上复制该行为。
为什么 \
指向网站的主页,这是开发人员故意的吗?
你是对的,这是不正确的,而且几乎可以肯定这不是故意的。反斜杠 (\
) 在 URL 中是 considered unsafe,如果在 URL 中需要反斜杠,您通常必须将其编码为 %5C
。
为什么有效
正如 Rocket Hazmat pointed out in a 在您的问题中,大多数浏览器会在 URL 中自动将 /
替换为 \
。
所以link到\
转换为/
,请求当前服务器的root。服务器可能设置为在收到目录请求时提供一些默认文件,如 index.php
,结果是加载主页。
为什么它在 localhost 中不起作用
我不知道您的本地 HTTP 服务器设置,但很可能它没有配置为在收到目录请求时提供特定页面(如 index.php
)。因此,您可能只是看到一个目录列表,其中包含您在本地 运行 本地的本地 http 服务器的根目录。
我遇到了一个 HTML 锚点,上面写着 <a href="\">Home</a>
。
通常我们会放类似 <a href="index.php">Home</a>
的东西,但是当我点击 <a href="\">Home</a>
时,我可以转到网站的索引页面。
我无法在本地主机上复制该行为。
为什么 \
指向网站的主页,这是开发人员故意的吗?
你是对的,这是不正确的,而且几乎可以肯定这不是故意的。反斜杠 (\
) 在 URL 中是 considered unsafe,如果在 URL 中需要反斜杠,您通常必须将其编码为 %5C
。
为什么有效
正如 Rocket Hazmat pointed out in a /
替换为 \
。
所以link到\
转换为/
,请求当前服务器的root。服务器可能设置为在收到目录请求时提供一些默认文件,如 index.php
,结果是加载主页。
为什么它在 localhost 中不起作用
我不知道您的本地 HTTP 服务器设置,但很可能它没有配置为在收到目录请求时提供特定页面(如 index.php
)。因此,您可能只是看到一个目录列表,其中包含您在本地 运行 本地的本地 http 服务器的根目录。