【问题标题】:How get a like twitter url如何获得一个喜欢的推特网址
【发布时间】:2011-01-24 23:30:28
【问题描述】:

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

我的 .htaccess 文件是这样的。

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

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

我可以 example.com/id

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

example.com/name

??

谢谢

【问题讨论】:

  • 您的意思是您希望您的 URL 仅包含名称,但不包含 ID?

标签: url .htaccess


【解决方案1】:

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

【讨论】:

    【解决方案2】:

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

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

    【讨论】:

    • 这是对的,但并不能完全回答这个问题。他正在寻找一条只有 1 个正斜杠的路径。
    【解决方案3】:

    如果您正在寻找的正是这个:

    example.com/name

    您需要将您的 profile.php 更改为只期望 name 变量,并使用它来查询数据库。

    我相信你以前有过类似的情况:

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

    您需要将其更改为

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

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

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

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

    get_user_by_username()
    

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

    然后您的 htaccess 将如下所示:

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

    希望能回答你的问题

    【讨论】:

    • 我得到一个不正确的重定向页面。我可以在 url 中使用 rewritecond --> profile.php?id=$1&name=$2?? profile.php 真的需要“id”... thx
    猜你喜欢
    • 1970-01-01
    • 2013-04-03
    • 2019-01-13
    • 1970-01-01
    • 2015-07-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-01-12
    相关资源
    最近更新 更多