我想要一个简单的帮助...... 我有这样的网址: 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
答案 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
希望能回答你的问题