【问题标题】:Url rewriting broke my include网址重写破坏了我的包含
【发布时间】:2014-12-28 09:24:50
【问题描述】:

我的 url 重写有问题,让我告诉你,我的代码是: index.php:

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=test 但是用我的重写网址

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

这里的代码不适用于 url /page/test,问题是他只包含 test.php 我的页眉和页脚不包括在内,我不知道为什么......

【问题讨论】:

  • 我知道这与你的问题无关,但你的代码存在严重的安全问题,你需要验证page里面没有反斜杠或..跨度>
  • 是的,我做了,我没有复制我的代码,他有更多的细节,只是写在这里展示一个例子

标签: php .htaccess url rewrite


【解决方案1】:

听起来像是绝对/相对 URL 问题。当您转到 /page/XXXX URL 时,您已将相对 URL 基从 / 更改为 /page/,因此您需要更改所有链接,使其成为绝对 URL 或在页面标题:

<base href="/" />

【讨论】:

    猜你喜欢
    • 2011-07-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-03-20
    • 2016-01-25
    • 1970-01-01
    相关资源
    最近更新 更多