htaccess url重写?在PHP获取系统上

时间:2012-02-14 22:26:42

标签: php mod-rewrite

我使用下面的代码基本上转到我的页面。它如何工作是我放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");

2 个答案:

答案 0 :(得分:3)

您的代码允许解析和执行任何 php文件(禁止使用safemode / 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>

答案 1 :(得分:-2)

如果你想要一个干净的动态网址,你将不得不使用POST而不是GET。你的问题虽然没有多大意义。