自己网站的自定义个人资料网址,已通过各种帖子..!

时间:2012-10-03 15:06:28

标签: url-rewriting user-profile custom-url

我经历了一些类似的帖子, Facebook Like Custom Profile URL PHP

Custom URL / Apache URL Rewriting

但它仍然不清楚,实际的方法/过程不可用.. 伙计们,更多的指导会做很多事情。

我想在此提出问题:

  1. 用户应该有机会决定他们的网址是什么,就像fb,twitter一样 例如:www.facebook.com/harry.inaction

  2. 我正在使用linux,apache,mysql,php环境。

  3. 根据用户ID在加入时自动创建

  4. 来识别用户

    我在第一步就失败了,认真地说我不知道​​如何开始。

    由于

1 个答案:

答案 0 :(得分:1)

将任何细节都作为答案是不可能的,因为你必须构建你的这个系统,并且有不止一种方法可以做到这一点。设计决策需要根据您希望工作的方式和您已经拥有的东西(他们必须以某种方式合作)来制定。

假设您已经拥有一个用于创建用户的系统(听起来就像您这样做)并且您已经拥有一个用于查看配置文件的系统。您需要扩展此系统,以便在数据库的用户表中存储额外的“my_vanity_url”字段。该字段必须是唯一的。当用户编辑他们的个人资料时,他们可以选择将其更改为他们想要的任何内容(为简单起见,仅将其限制为字母,数字和短划线)。

接下来,当您显示此个人资料时,请说明是通过/profile.php,您的代码需要检查一些内容。

  1. 首先,它需要检查它的调用方式,查看$_SERVER['REQUEST_URI']您可以看到/user/some-vanity-name/profile.php?u=1234
  2. 如果是后者,则需要重定向浏览器,进行数据库查找以查看user_id 1234的用户是谁。
  3. 将“my_vanity_url”列从此用户的数据库中拉出,并将浏览器重定向到/user/my_vanity_url_value(将my_vanity_url_value替换为该列的值。)
  4. 现在,如果您转到 http://your.domain.com/profile.php?u=1234 ,您的浏览器会被重定向,并且网址地址栏会显示 http ://your.domian.com/user/my_name

    接下来,您需要能够获取该唯一名称并将其转回旧丑陋的个人资料页面。这里需要做两件事:

    1. 您需要再次扩展profile.php以获取可选的虚荣名称而不是user_id
    2. 您需要使用mod_rewrite将虚荣名称内部路由到/profile.php
    3. 首先,您只需查找不同的$_GET[]参数,而不是user_id的参数。假设它被称为name:所以请查看$_GET['name'],查看它是否存在,是否在用户表中查找其虚名网址名称为$_GET['name']的用户。返回该用户的个人资料。

      第二件事,你只需将它放在文档根目录中的htaccess文件中的适当位置:

      RewriteEngine On
      RewriteRule ^/?user/([A-Za-z0-9-]+)/?$ /profile.php?name=$1 [L]
      

      这只是如何实现这样的事情的一个例子。它可能完全不适用于你拥有的东西,但它应该让你知道你需要做什么。