为什么我的超链接转到错误的目录

  • 本文关键字:错误 超链接 html
  • 更新时间 :
  • 英文 :


在我的项目中,功能就像我需要设置指向以下链接时:

/site/sales/sold.php

因此,菜单.php文件链接如下所示:

 <ul>
      <li><a href="sales/">Sales</a></li>   
      <li><a href="sold.php">Sold Items</a></li>
    </ul>

它有时会直接指向

/site/sales/sold.php 

下一刻,它重复菜单的目录,如下所示:

/site/sales/sales/sold.php

所以我删除了销售目录,因为它本身就在那里指导了一段时间,现在它指向

/site/sold.php

不存在,所以它最终得到一个 404。

如果您在页面sales/上并链接到页面sales,则链接将导致sales/sales/ - 这是定义的行为。

避免这种情况的默认方法是通过 HTML <base> 标记指定基本 URL。这里不涉及PHP,JS或CSS——只是很好的HTML 2.0。

<base href="http://www.example.com/site/">

在您的页面标题中使用它,将定义给定的 URL 作为页面上所有链接的基础,因此像 sales/ 这样的链接在点击时实际上会导致http://www.example.com/site/sales/

请参阅:https://developer.mozilla.org/en-US/docs/Web/HTML/Element/base

你为什么不直接使用绝对链接?甚至是 URL 重写?

使用相对链接(如"已售出.php"(的唯一方法是,您的菜单仅出现在/sales 目录中。例如,如果此菜单出现在/site 的页面中,它当然不起作用,因为/site/sold.php 下可能没有一个名为"sold.php"的文件。因此,如果您不想确保,您的链接"已售出"始终指向正确的方向,请使用像/site/sales/sold.php这样的链接。那么你是在/site 内部还是在/site/sales 内部都无关紧要。

if i for example set my menu link to direct to: /site/sales/sold.php so the menu.php file link would look like this:
<li><a href="sales/">Sales</a></li>
<ul>
<li><a href="sold.php">Sold Items</a></li>
</ul>

这说不通。如果你将你的链接指向/site/sales/sold.php,你的链接看起来就像这样:<li><a href="/site/sales/sold.php">Sold Items</a></li>

最新更新