怎么得到一个像twitter的网址

时间:2010-03-08 13:11:27

标签: url .htaccess

我想要一个简单的帮助...... 我有这样的网址: example.com/profile.php?id=&&名称=

我的.htaccess文件就像这样。

RewriteRule ^个人资料/(。)/(。)个人资料.php?id = $ 1& name = $ 2

所以我有一个这样的结束URL: example.com/profile/id/name

我能做到 example.com/id

但我怎么能得到这样的网址:

example.com/name

...

thax

3 个答案:

答案 0 :(得分:1)

显然,你的profile.php脚本需要两个GET变量,而你想要的URL只有一个。因此,您可能必须更改脚本和数据库架构。

答案 1 :(得分:1)

您的重写规则是巧妙的错误。您只能在每个括号中选择一个字符。如果你在每个点后加一个*,它会选择一个或多个字符,我认为这就是你需要的。

RewriteRule ^profile/(.*)/(.*) profile.php?id=$1&name=$2

答案 2 :(得分:0)

如果您正在寻找的是:

example.com/name

您需要将profile.php更改为仅预期名称变量,并使用它来查询数据库。

我相信以前你有类似的东西:

mysql_query("SELECT * from table where id=$id");

您需要将其更改为

mysql_query("SELECT * from table where name$name");

因此,您告诉您的页面按名称而不是ID来查询用户。

有一些与此相关的缺点,因为您的查询不会像以前那么快,因为我相信您的名称列不是主键,因此没有索引。

Twitter使用Rails,因此他们将使用类似(onMissingMethod)的方式稍微调用它:

get_user_by_username()

这也不是很好,因为它仍然通过字符串查询数据库,但是有一些性能改进使得rails能够做到这一点。

您的htaccess将会像:

RewriteRule ^(.*) profile.php?name=$1

希望能回答你的问题