2011-06-16 77 views
-1

我对mod_rewrite有点麻烦。谢谢你的帮助。变量.htaccess重写

我试图改变这个出发网址:

http://www.example.com/profile.php?u=72 

到这个网址我想显示:

http://www.example.com/username 

其中username是用户#72的用户名,为存储在MySQL数据库。我应该采取哪些措施来为所有用户做到这一点?

+0

你有没有尝试过你自己呢?完成任何研究? – martynthewolf 2011-06-16 13:34:41

+0

我知道基本的mod_rewrite的东西,但我不知道如何使用它来使用来自数据库的信息,或者即使这是正确的做法。是的,当然我已经完成了研究,但是我找不到任何这方面的内容。或者我真的很愚蠢。感谢downvote,欢呼声。 – 2011-06-16 13:36:40

+0

@Eric我没有投下你的问题!你的问题看起来是“给我代码”。你能告诉我们你曾经尝试过但没有工作吗?此外,你显然不愚蠢:) – martynthewolf 2011-06-16 13:41:31

回答

2
  1. 确保用户名在数据库中是唯一的 - 检查是否区分大小写。
  2. 将应用程序中指向前一个网址的所有旧网址替换为使用用户名的网址。
  3. 在您的用户详细信息页面上,按用户名而不是ID选择。

如果您有任何问题,我很乐意为您解答具体问题。

+0

因此,基本上将旧网址替换为'http://www.example.com/profile.php?u = username',然后mod_rewrite。非常酷,谢谢。 – 2011-06-16 13:41:19

2

听起来就像是在向后思考 - 而是考虑如何将example.com/username转换为像example.com/profile.php?name=username这样的URL,然后您的PHP可以使用该URL。通常,当您使用mod_rewrite时,您可以更改站点中的链接以链接到干净的URL,并使用mod_rewrite使其能够理解它们。

2

您的mod_rewrite不使用来自数据库的信息,您使用它来加载另一个页面,同时显示你想要的网址。

如果url不包含用户ID,则无法完全按照您的要求使用它,您无法重定向到http://www.example.com/profile.php?u=72。但是,您可以重定向到http://www.example.com/profile.php?username=usernameprofile.php根据用户名而不是id查找正确的用户。