服务器索引文件的第一个条目上的相对路径



在第一次进入Apache服务器索引页时,我创建了一个水平标题,其中包含重新加载主页的链接"Home"。在该页面上,我有一列指向其他页面的链接。

文件顺序为:

服务器/new_index.php

<!-- WEB server entry point -->
<?php
#echo getcwd(),    "n";
$path_parts = pathinfo(getcwd());
chdir("php2");
#This is really our current home page
include ('MainPage.php');
?>

主页.php开头为:

<?php # Hollywood Controls - MainPage
$page_title = 'Hollywood Controls';
include ('../inc/header.inc.htm');
?>
<?php
echo "1 ",getcwd() . "<br>";
include ('../inc/Categorymenu.inc.htm');
?>

header.inc.htm包括:

<div id="widemenu">
    <ul>
    <li><a href="../php2/MainPage.php">Home</a></li>
    <li><a href="../php/AirCannons.php">Halloween Products</a></li>
<!--
    <li><a href="../php/Contact.php">Halloween Products</a></li>
    <li><a href="../php/AirCannons.php">Halloween Products</a></li>
    <li><a href="../php/Featured.php">Halloween Products</a></li>
    <li><a href="../php/OrderingInfo.php">Ordering</a></li>      -->
    <li><a href="../php/AboutUs.php">About Us</a></li>
    <li><a href="../php/Contact.php">Contact Us</a></li>
    <li><a href="../php/Privacy.php">Privacy</a></li>
    </ul>
    <?php include('../pp_buttons/view_cart.htm');?>
</div>

Categorymenu.inc.htm 包含:

<?php
echo "3 ",getcwd() . "<br>";
#chdir("..php2");
?>
<div id="tblmenu">
    <table cellspacing="0" cellpadding="0" border="0">
      <tbody>
        <tr>
        <td align="center" colspan="2">Category</td>
        </tr>
        <tr>
        <td align="center" width="85%"><a href="PubArticles.php">Published Articles</a></td>
        <td>(1)</td>
        </tr>
        <tr>
        <td align="center" width="85%"><a href="TekScopeBattery.php">Equipment Repair</a></td>
        <td>(1)</td>
        </tr><tr>
        <td align="center" width="85%"><a href="">Tear-downs</a></td>
        <td>(0)</td>
        </tr>
        <tr>
        <td align="center" width="85%"><a href="Software.php">Software</a></td>
        <td>(1)</td>
        </tr>
        <tr>
        <td align="center" width="85%"><a href="">PHP Scripts</a></td>
        <td>(0)</td>
        </tr>
      </tbody>
    </table>
</div>

在第一个页面加载时,href="PubArticles.php"指向//server/PubArticles.php(这是不正确的,因为当前目录是"php2")。

如果我通过单击水平标题中的"主页"按钮重新加载主页,我会得到不同的结果。现在 href="PubArticles.php" 指向//server/php2/PubArticles.php(正确!)。

我想我已经从完整代码中筛选了相关代码。 echo getcwd() 表示我在第一个条目和后续条目中处于"php2"中。

我在这里错过了什么?

您可以在 www.hollywoodcontrols.com 中看到此操作

问题是您使用include ('../inc/Categorymenu.inc.htm');输出MainPage.php表。这包括页面上的文件,这基本上与将该页面的内容复制到MainPage.php中相同。因此,链接是相对于MainPage.php,而不是Categorymenu.inc.htm

考虑到表链接将由两个不同目录中的两个文件加载,它们将具有两个不同的相对路径。解决此问题的最佳方法是通过添加尾部斜杠使表相对于根链接:

<a href="/php2/PubArticles.php">

希望这有帮助!

最新更新