2014-12-28 40 views
0

我有一个问题,我的URL重写让我告诉你,我的代码是: 的index.php:Url重写打破了我包括

include 'header.php'; 

if(!isset($_GET['page']) or !file_exists($_GET['page'] . '.php') { 
    include_once 'home.php'; 
} else { 
    include_once $_GET['page'] . '.php'; 
} 

include 'footer.php'; 

这里的代码工作良好,/index.php?page=测试 但我重写URL

RewriteRule ^page/(.*)$ index.php?page=$1 [QSA,L] 

这里的代码不与网址/网页/测试工作,但问题是,他只包含test.php的我的页眉和页脚是不包括在内,我不知道为什么...

+0

我知道这无关你的问题,但你的代码有严重的安全问题,你需要验证'page'没有或'..'它里面反斜线 –

+0

啊是啊,我已经做到了,我没有复制过去我的代码,他有更多的细节,只是写在这里,以示例 – svartholm

回答

0

听起来像绝对/相对URL问题。当您转到/page/XXXX网址时,您已将相关网址从/更改为/page/,因此您需要更改所有链接,以便它们是绝对网址或在网页标题中包含相对网址:

<base href="/" /> 
+0

我有多少白痴...感谢那是一个小错误:p – svartholm