【问题标题】:Custom profile URL for own site, been though various posts..!自己网站的自定义个人资料 URL,通过各种帖子..!
【发布时间】:2012-10-03 15:06:27
【问题描述】:

我看过一些类似的帖子, Facebook Like Custom Profile URL PHP

Custom URL / Apache URL Rewriting

但仍不清楚,实际方法/过程不可用.. 伙计们,多一点指导会起到很大的作用..

我想在这里提出问题:

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

  2. 为此我使用的是linux、apache、mysql、php环境。

  3. 根据用户加入时自动创建的用户 ID 识别用户

而且我在第一步就失败了,我真的不知道如何开始。

谢谢

【问题讨论】:

  • 这个论坛是为了获得特定问题的帮助。它不是一般的帮助或讨论论坛。对不起。如果您有具体问题,请提出。
  • 问题是具体的..我想学习如何让用户拥有自己的个人资料网址
  • 抱歉,这个问题有什么特别之处?这是一个“通常如何构建 url?那里有最佳实践吗?问题。一个具体的问题是这样的:这是我的代码,我得到这个错误,有什么问题?。
  • 我的问题是……我该如何开始……??
  • 那么最好从问一个具体问题开始。不,不要误会,我并不是要不友好。但是如果你不告诉你你真正想要做什么,这些网址应该是什么样子,你想使用什么环境/语言以及你的用户是如何组织/识别的,那么我们几乎无法回答。

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


【解决方案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替换为该列的值)。

所以现在,如果您访问 http://your.domain.com/profile.php?u=1234,您的浏览器会被重定向,并且 URL 地址栏会显示 http ://your.domian.com/user/my_name

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

  1. 您需要再次扩展您的 profile.php 以采用可选的虚名而不是 user_id
  2. 您需要使用 mod_rewrite 在内部将虚名路由到 /profile.php

首先,您只需寻找一个不同的$_GET[] 参数,而不是寻找user_id 的任何参数。假设它被称为name:那么查看$_GET['name'],看看它是否存在,如果它确实在用户表中查找其虚url 名称为$_GET['name'] 的用户。返回该用户的个人资料。

对于第二件事,您只需将其放在文档根目录中的 htaccess 文件中的适当位置:

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

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

【讨论】:

  • 完美拍摄.. @JonLin.. 你完全置身于场景之中.. 完美猜测
  • 嘿@Jonlin,我有点困惑.. 这种重定向,我认为这里不是个好主意..那么有什么可取的
  • @HariOm 您需要通过生成配置文件内容的脚本进行重定向
  • Consider me not a good coder..,你说,“你需要通过生成配置文件内容的脚本进行重定向”,请关注重定向部分,因为我知道配置文件内容生成,那么我们如何做重定向“显然我认为可能是通过htaccess文件,但不知道如何,请你指定..”..如何..因为我认为休息我可以做到..
  • 在执行 mysql 查询后,我通过将页面重定向到该 url 将旧的难看 url 替换为 curtom url,但是我如何在该重定向页面上填充数据..??请指导我..
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-07-10
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多