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