我正在为一家公司创建一个网站,php
我需要为每个成员创建他的个人资料页面,例如 facebook 的 url
www.mywebsite.com/my.name
不是这样的:
www.mywebsite.com/?profile_id=65497
有任何想法吗 ??
我正在为一家公司创建一个网站,php
我需要为每个成员创建他的个人资料页面,例如 facebook 的 url
www.mywebsite.com/my.name
不是这样的:
www.mywebsite.com/?profile_id=65497
有任何想法吗 ??
我假设您知道只有当您有一些将 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