mod_rewrite / query_string

时间:2011-02-18 14:07:59

标签: php mod-rewrite query-string

我从mysql数据库中得到一些基本结果并将其列在页面上,在页面上我添加了带变量user_id的链接:

href=\"http://localhost/TESTING/template.php?user_id=$user_id\" >click here

在template.php文件中,我将获得$ user_id并显示相关的完整数据。

问题是我不希望user_id = 249 http://localhost/TESTING/template.php?** user_id = ** 249在网址中显示我想要的内容“http://localhost/TESTING/template.php/249”。

我一直在研究这几天但没有成功,这可能吗?或者模板文件是否需要显示user_id = $ user_id才能获得变量?

=====================

要更新:我添加了代码

RewriteEngine On

RewriteBase / TESTING /

RewriteRule ^ template.php /([0-9] +)(/)?$ template.php?user_id = $ 1 [L]

将链接变量更改为href =“localhost / TESTING / template.php / {$ user_id}”>点击此处

重写现在有效,但我没有用$ user_id = $ _GET [“user_id”]获取变量;在template.php页面上

我将以下内容添加到template.php页面,以查看通过网址传递的内容:

<?php
ini_set('display_errors',1);
echo '<b>$_GET Variables</b><pre>';
var_dump( $_GET );
echo '</pre>';
?> 

并得到以下回复:

$ _获取变量

array(1){   [ “USER_ID”] =&GT;   string(2)“21” }

如何获取变量?

===========

现在更新有效!链接中的{$ user_id}不是{user_id} - 可能发誓我试过两种方式。

2 个答案:

答案 0 :(得分:1)

我不想成为一个人,但是互联网上有很多手册,例如:

http://httpd.apache.org/docs/2.0/mod/mod_rewrite.html

通过示例解释了您需要的一切。你都尝试了些什么?所以我们可以解释什么是错的。

答案 1 :(得分:1)

请注意,mod_rewrite仅适用于Apache服务器。

RewriteEngine On

RewriteBase /TESTING/

RewriteRule ^template.php/([0-9]+)(/)?$ template.php?user_id=$1 [L]