如何重写这样的链接?

时间:2010-08-07 18:51:20

标签: .htaccess rewrite

我有一个链接,让我们说:http://site.com/profile.php?id=1 ....在正常模式下,通过正常重写,我会有:http://site.com/profile/1。但是,......我想要的是.....我如何从数据库中获取属于id为1的用户的用户名并生成网址http://site.com/profile/FinalDestiny

谢谢,

2 个答案:

答案 0 :(得分:2)

您可以使用mod_rewrite的{​​{3}}函数,但必须将您的id-username对存储到文本文件或基于DBM文件的数据库中。请记住,要使用此指令,首先要在 httpd.conf 中声明它,因此需要对httpd.conf进行访问和写入权限。

如果您的用户存储在另一个数据库(MySQL等)中,我建议您使用文本文件,只需在添加或删除用户时覆盖它。

如果您有足够的用户使用DBM作为明智的选择,您可以尝试使用PHP的RewriteMap或制作上述文本文件,并使用Apache的实用程序DBA functions将其转换为数据库(通过exec()等)。

RewriteMap也允许使用外部程序(比如说,一个PHP CLI脚本)来返回URL映射,但它似乎有点过分...

答案 1 :(得分:0)

您希望制定一条规则,将http://site.com/profile/FinalDestiny重写为http://site.com/profile.php?username=FinalDestiny,然后在profile.php中执行数据库查询,以查找具有该用户名的用户的ID。