由于位置不同导致重定向错误

时间:2017-02-08 15:37:36

标签: php html

我的文件“menu.php”包含:

<a href="index.php">Home</a><br />
<a href="logout.php">Logout</a>

在每个文件中我输入:

<?php
include("menu.php");
?>

它工作正常。

但是现在..我创建了一个名为“data”的文件夹,并在其中创建了一个名为“index.php”的文件......

在我输入的index.php中:

<?php
include("../menu.php");
?>

所以现在菜单也显示在“data / index.php”中,但是......在浏览“data / index.php”时链接是:

主页:data / index.php 注销:data / logout.php

如何使index.php和logout.php没有数据/?

3 个答案:

答案 0 :(得分:1)

使用此代替

<a href="/index.php">Home</a><br />
<a href="/logout.php">Logout</a>

或者如果您使用的是子文件夹

<a href="/subfolder/index.php">Home</a><br />
<a href="/subfolder/logout.php">Logout</a>

答案 1 :(得分:0)

避免子文件夹hades 和链接的一种方法是声明

  

<base href="/">

位于html的顶部。那么所有链接都将相对于文档根目录。所以menu.php可以起作用(在所有子文件夹级别),好像每个页面都是真正的文档根级别。

如果您对此感兴趣,我可以将一些代码作为示例。这个方向的一个重要原因是防止不得不改变很多其他代码。这种方式的一个不好的理由是,如果你已经有很多代码试图克服子文件夹的疯狂。

答案 2 :(得分:0)

您可以创建一个PHP文件来存储子文件夹的路径或将在整个网站中使用的其他变量。

variables.php

    $path = '/subfolder/';

menu.php

     include('variables.php');
     global $path;

   <a href="<php echo $path ?>index.php">Home</a><br />
   <a href="<php echo $path ?>logout.php">Logout</a>