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

时间:2013-10-10 09:35:25

标签: html

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

/site/sales/sold.php

所以menu.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结尾。

2 个答案:

答案 0 :(得分:0)

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

使用像“sold.php”这样的相对链接的唯一方法是,您的菜单只出现在/ sales目录中。如果这个菜单出现在/ site的页面内,当然它不起作用,因为在/site/sold.php下可能没有名为“sold.php”的文件。因此,如果您不确定,您的“已售出”链接始终指向正确的方向,请使用类似/site/sales/sold.php的链接。那么无论你是在内部/网站还是在/ 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>

答案 1 :(得分:0)

如果您位于sales/页面并链接到页面sales,则链接将生成sales/sales/ - 这是已定义的行为。

要避免这种情况的默认方法是通过HTML <base>标记指定基本网址。这里没有涉及PHP,JS或CSS - 只是很好的'HTML 2.0。

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

在您的网页页面中使用此功能会将给定的网址定义为网页上所有链接的基础,因此sales/之类的链接实际上会在点击时生成http://www.example.com/site/sales/

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