如何得到一个像Twitter网址
我想一个简单的帮助... 我有这样一个网址: example.com/profile.php?id= &名=如何得到一个像Twitter网址
我的.htaccess文件这样的。 ()?
重写规则^资料/()/ profile.php ID = $ 1 &名= $ 16
,所以我有一个结束的网址是这样的: example.com/profile/id/命名
我可以让 example.com/id
,但我怎么能得到这样的网址:
example.com/name
??
thax
如果你正在寻找的究竟是什么这样的:
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将looki像:
RewriteRule ^(.*) profile.php?name=$1
希望这回答你的问题
显然,你profile.php脚本需要二送变量,你想要的网址只有一个。所以你可能不得不改变脚本和数据库模式。
您的重写规则很微妙。您只会在每个括号内的部分中选择一个字符。如果你在每个点之后放一个*,它会改为选择一个或多个字符,我认为这是你需要的。
RewriteRule ^profile/(.*)/(.*) profile.php?id=$1&name=$2
这是事实,但并不完全回答这个问题。他正在寻找一条只有1个前锋的路线。 – 2010-03-08 13:21:23
哎呀 - 我的错误 - 误读的问题:( – iblamefish 2010-03-08 13:42:43
你的意思是你希望你的网址只有名称,但不包含ID? – 2010-03-08 13:15:35