【问题标题】:Links from require_once broken来自 require_once 的链接已损坏
【发布时间】:2018-12-18 16:00:34
【问题描述】:

我有一个菜单文件,我想将它包含在我网站的每个文件中,以避免每次都编写相同的代码。我用 require_once("menu.php");问题是当我点击由 menu.php 生成的链接时,它会变成一个相对链接,因为它没有找到该文件。 这是我的目录:

menu.php:

 <?php echo'
 <div class="topnav-bar">
 <ul class="topnav">
  <li class="dropdown"><a href="index.php">Home</a>
    <ul class="dropdown-content">
      <li><a href="geografia.php">Geografia</a></li>
      <li><a href="clima.php">Clima</a></li>
      <li><a href="storia.php">Storia</a></li>
    </ul>
  </li>
  <li class="dropdown"><a href="pages/luoghi.php">Luoghi</a>
    <ul class="dropdown-content">
      <li><a href="pages/luoghi/chiesette.php">7 Chiesette</a></li>
      <li><a href="pages/luoghi/catajo.php" class="active">
       Castello del Catajo</a></li>
      <li><a href="pages/luoghi/praglia.php">Abbazia di Praglia</a></li>
      <li><a href="pages/luoghi/carrareseeste.php">
       Castello carrarese di Este</a></li>
      <li><a href="pages/luoghi/lispida.php">Castello di Lispida</a></li>
      <li><a href="pages/luoghi/pelagio.php">Castello San Pelagio</a></li>
    </ul>
  </li>
    <li class="icon">
      <a href="javascript:void(0);" onclick="menuMobile()">&#9776;</a>
    </li>
  </ul>
</div>'; ?>

例如,如果我从“index.php”单击“chiesette.php”,浏览器会显示 URL http://127.0.0.1/pages/luoghi/chiesette.php。现在,如果我从这个页面点击“catajo.php”,它会显示http://127.0.0.1/pages/luoghi/pages/luoghi/catajo.php。

我做错了什么?

【问题讨论】:

  • 在每个链接的开头添加斜杠,以便它从根目录而不是当前目录开始。只需确保添加文件的完整路径即可。
  • 通过在 pages/ 之前添加斜杠将相对路径更改为绝对路径,如下所示:&lt;a href="/pages/luoghi/chiesette.php"&gt;
  • @Alexey 这实际上是root-relative URL,绝对通常在其中有协议。
  • 放斜线是我曾经在我的机器上工作的解决方案,但由于我的队友使用的是 windows(我正在使用 manjaro)并且链接对他不起作用,所以出现了问题。我们都在使用 apache2。

标签: php html


【解决方案1】:

当您在 index.php 中时,您位于根目录,因此链接将指向正确的位置。 从 /pages/luoghi 因为缺少斜线,它从你的实际目录构建链接,例如 /pages/luoghui

<li><a href="/pages/luoghi/chiesette.php">7 Chiesette</a></li>
  <li><a href="/pages/luoghi/catajo.php" class="active">
   Castello del Catajo</a></li>
  <li><a href="/pages/luoghi/praglia.php">Abbazia di Praglia</a></li>
  <li><a href="/pages/luoghi/carrareseeste.php">
   Castello carrarese di Este</a></li>
  <li><a href="/pages/luoghi/lispida.php">Castello di Lispida</a></li>
  <li><a href="/pages/luoghi/pelagio.php">Castello San Pelagio</a></li>

上面的代码(带有斜线)应该可以工作,因为链接将从根目录构建。

【讨论】:

  • put slash 是我曾经在我的机器上工作的解决方案,但是由于我的队友使用的是 windows(我使用的是 manjaro)并且链接对他不起作用,所以出现了问题。我们都在使用 apache2。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2013-04-14
  • 1970-01-01
  • 2019-08-31
  • 2015-06-30
  • 1970-01-01
  • 2018-09-05
  • 1970-01-01
相关资源
最近更新 更多