为自己的网站定制个人资料的URL,已经通过各种帖子......![英] Custom profile URL for own site, been though various posts..!

本文是小编为大家收集整理的关于为自己的网站定制个人资料的URL,已经通过各种帖子......!的处理方法,想解了为自己的网站定制个人资料的URL,已经通过各种帖子......!的问题怎么解决?为自己的网站定制个人资料的URL,已经通过各种帖子......!问题的解决办法?那么可以参考本文帮助大家快速定位并解决问题。

问题描述

我看过一些类似的帖子,Facebook Like 自定义配置文件 URL PHP

自定义 URL/Apache URL 重写

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

我想在这里提出问题:

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

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

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

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

谢谢

推荐答案

不可能给出任何细节作为答案,因为你必须构建你的这个系统,还有更多不止一种方法.设计决策需要根据您想要的工作方式和您已经拥有的东西(它们必须以某种方式协同工作)来做出.

假设您已经有了一个用于创建用户的系统(听起来确实如此)并且您已经有了一个用于查看个人资料的系统.您需要扩展此系统,以便在数据库的用户表中存储一个额外的"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]
<小时>

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

本文地址:https://www.itbaoku.cn/post/1793752.html