在网址“mod_rewrite”中使用名称进行php分析

时间:2013-03-07 23:14:19

标签: php mod-rewrite profile

我正在php为公司创建一个网站,我需要为每个成员创建他的个人资料页面 喜欢facebook的网址

www.mywebsite.com/my.name

不喜欢这样:

www.mywebsite.com/?profile_id=65497

任何想法??

1 个答案:

答案 0 :(得分:1)

我知道你知道只有你有一些将id映射到名字的来源才能做到这一点。 mod_rewrite可以在查找表中查找字符串,并将结果用于替换。

例如,假设您有一个包含id映射名称的文件。

# Mapping of names to UserIDs
Bill.Gates    100
Barack.Obamaq 101
Arsan.Gamal   102 

然后,您可以将以下内容添加到您的apache配置中:

RewriteEngine On
RewriteMap UserIDs   txt:/path/to/userids.txt
RewriteRule /(.*)   /?profile_id=${UserIDs:$1|NOTFOUND}   [PT]

现在请求/Bill.Gates在正则表达式后面引用中捕获/之后的部分,并用于在userids.txt中查找值。该值比您替换使用的值。

还有其他可能性。如果您的用户名和ID存在于数据库中,则可以在RewriteMap中使用数据库查询。有关使用RewriteMaps可以做什么的更多信息,以及如何操作可以在手册中找到: http://httpd.apache.org/docs/2.4/rewrite/rewritemap.html