我使用下面的代码基本上转到我的页面。它如何工作是我放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");
答案 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。你的问题虽然没有多大意义。