我有一个index.php页面,应链接到我的其他网站。
<?php
if(!isset($_GET['page']))$page = 'home.php';
else{
$page = $_GET['page'] . ".php";
}
include("_includes/header.php");
include("_includes/navigation.php");
include("_pages/$page");
include("_includes/footer.php");
?>
这就是我的index.php的样子。它应该是我点击的页面(当我登录导航时)并将其指向此页面,以便页眉,导航和页脚将被重用于每个页面。
<div id="navi">
<ul>
<li><a href="home">Home</a></li>
<li><a href="skills.php">Skills</a></li>
<li><a href="_pages/my_projects.php">Projects</a></li>
<li><a href="_pages/experience">Experience</i></a></li>
<li><a href="_pages/personal">About</a></li>
<li><a href="_pages/contact">Contact</a></li>
</ul>
</div>
根据代码,“home”链接应该可以工作,但是它说找不到URL,因为它在我所在的目录中寻找“home”。但它在我的pages目录中。 “技能”做同样的事情。唯一有效的是链接项目通过联系,因为我指定了一个路径。但是,有效的链接不会通过我的索引页面,因为这里不包含header.php(包含css),navigation.php和footer.php。
我做了研究,我发现我必须使用.htaccess文件和/或mod_rewrite。有人可以请帮帮我。我一直在寻找大约2-3周,一无所获。
答案 0 :(得分:1)
您应该引用index.php,而不是home ..
<div id="navi">
<ul>
<li><a href="index.php?page=home">Home</a></li>
<li><a href="skills.php">Skills</a></li>
<li><a href="_pages/my_projects.php">Projects</a></li>
<li><a href="_pages/experience">Experience</i></a></li>
<li><a href="_pages/personal">About</a></li>
<li><a href="_pages/contact">Contact</a></li>
</ul>
</div>
答案 1 :(得分:1)
您的链接应为:
<div id="navi">
<ul>
<li><a href="index.php?page=home">Home</a></li>
<li><a href="index.php?page=skills">Skills</a></li>
<li><a href="index.php?page=my_projects">Projects</a></li>
<li><a href="index.php?page=experience">Experience</i></a></li>
<li><a href="index.php?page=personal">About</a></li>
<li><a href="index.php?page=contact">Contact</a></li>
</ul>
</div>
答案 2 :(得分:0)
它与您的Web服务器处理请求的方式密切相关。 如果您尝试访问不受PHP管理的网址,您将无法使用它。通过deafult PHP只处理.php请求url(也.php5和其他一些)。
解决方案可能是写一个重写条件,将/ home /转换为index.php?page = home。假设您正在运行启用了mod_rewrite且启用了htaccess的Apache Web服务器。
所以,假设以这种方式规范你的链接:
<div id="navi">
<ul>
<li><a href="/pages/home">Home</a></li>
<li><a href="/pages/skills">Skills</a></li>
<li><a href="/pages/my_projects">Projects</a></li>
<li><a href="/pages/page=experience">Experience</i></a></li>
<li><a href="/pages/page=personal">About</a></li>
<li><a href="/pages/page=contact">Contact</a></li>
</ul>
</div>
你可以像这样写一个.htaccess,把它放在/ pages /文件夹中:
RewriteEngine On
RewriteRule ^/pages/(.*)$ /index.php?page=$1 [QSA,L]
请注意每个对/ pages /的请求都会被重写,所以你应该仔细编写它们,避免重写.css .png等等......
这将以这种方式影响您的请求:
P.S。 也许您可能对标志P感兴趣,将请求发送到index.php作为代理,但是对于更多信息,您应该参考mod_rewrite docs(http://httpd.apache.org/docs/current/mod/mod_rewrite.html)