-1

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

/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 结束。

4

2 回答 2

0

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

使用像“sold.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>

于 2013-10-10T09:54:08.813 回答
0

如果您在一个页面上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

于 2013-10-10T09:59:15.710 回答