我仍然可以使用PHP GET变量和mod_rewrite

时间:2012-01-22 21:45:52

标签: .htaccess mod-rewrite

我有一个页面,使用以下代码从URL中获取GET变量q:

<?php ob_start(); session_start();
$q=trim($_GET['q']);  // this is for security purposes
if (!is_numeric($q)){
header("HTTP/1.0 404 Not Found");
}
?>

当前网址看起来像localhost/s/index.php?q=345。我将很快编写一个.htaccess文件,使URL看起来像localhost / 345。我想知道我是否仍然可以使用上面的代码获取GET变量(q)。我很失望,因为URL不具有典型的GET外观。在新网址中,“GET”变量看起来像一个文件夹。

2 个答案:

答案 0 :(得分:1)

是的,当你使用mod-rewrite时,它会被'重写'为不同的格式。然后你的htaccess将指定如何解释新格式,因此你的值将在那里,由你决定你的htaccess的格式以使它们获得变量。

答案 1 :(得分:1)

如果您的RewriteRule替换字符串不包含?简介,则查询字符串保持不变。如果是,并且您还指定了[qsa]标志,则现有查询字符串将附加到替换字符串中的新字符串。