【问题标题】:htacess url rewrite? on a php get systemhtaccess url重写?在 php 获取系统上
【发布时间】:2012-02-15 06:49:13
【问题描述】:

我使用下面的代码基本上可以访问我的页面。它的工作原理是我输入index.php?req=pagename,它会检查我的受保护文件夹以查看文件是否存在,如果存在则它会去那里。我需要一个 mod 重写,这样它就不会显示所有 index.php?req=pagename 而只显示 /pagename

    require_once("protected/header.php");

    if (isset($_GET['req'])) {
        $req = $_GET['req'];
    } else {
        $req = "overall";
    }

    require_once("protected/$req.php");
    require_once("protected/footer.php");

【问题讨论】:

标签: php mod-rewrite


【解决方案1】:

您的代码允许解析和执行任何 php 文件(除了安全模式/open_basedir 限制)。您需要首先转义该输入,即使它只是像删除斜杠、波浪号和句点这样基本的操作。

就重写而言,只需在文档根目录中创建一个.htaccess 文件,如下所示:

<IfModule mod_rewrite.c>
RewriteEngine On
#RewriteBase /
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^(.*)$ /index.php?req=$1 [QSA,L]
</IfModule>

【讨论】:

  • 我是个菜鸟,我把它放在 htacess 中,它什么也没做所有页面仍然像 /index.php?req=pagename 就像我说我想要的是 /pagename
  • 嗯?您正在输入 yourdomain/pagename 并显示 404 错误?
  • 确保在 apache 中启用了重写模块。正确放置.htaccess。做这两件事(并确保/pagename 当然不存在)将产生正确的结果。有能力的时候请勾选这个答案:)
【解决方案2】:

如果您想要一个干净的动态 url,则必须使用 POST 而不是 GET。你的问题虽然没有多大意义。

【讨论】:

  • 他想把/pagename改写成index.php?req=pagename
猜你喜欢
  • 1970-01-01
  • 2018-12-03
  • 1970-01-01
  • 1970-01-01
  • 2012-02-27
  • 2018-05-31
  • 2019-12-11
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多