php - 将 URL 中的 ID 替换为用户名

标签 php mysql .htaccess url url-rewriting

我有一个网址

http://website.com/view/b2c32b2c782f65be2c299f7b38189a120fd51c89/

将用户定向到个人资料,即与用户相关的 ID。

是否有使用 php/.htacess/mysql 将此 id 替换为相对用户名的方法?

有什么解决办法吗?

我使用重写规则,以便将 URL 中的 id 解释为获取值:

RewriteRule ^view/([a-f0-9]{40})/$ ./view/index.php?profile_id=$1

最佳答案

我认为你应该考虑使用 RewriteMap 解决您的问题。

想想这个场景:最终用户请求 view/joe-soap/ . RewriteMap 会向服务器询问该用户的 ID,实际上请求 /view/b2c32b2c782f65be2c299f7b38189a120fd51c89/ , 基于响应。

为此,您需要创建一个 PHP 脚本,该脚本从 URL(由 RewriteMap 提供)中接受用户名,然后返回该用户的 ID。然后 RewriteMap 将允许您静默请求 view/index.php?profile_id=<retrieved_use_id_here> .

我建议你read through the documentation由 Apache 的网站提供。以下是一些可以为您提供帮助的网站:

  1. Making sense of Rewritemaps in Apache
  2. mod_rewrite with RewriteMap: External Rewriting Program
  3. RewriteMap PRG By Example Using PHP For Apache Mod_Rewrite

但是:我建议,考虑到这会增加一个额外的请求,您只需使用 PHP 来获取 ID,然后在同一个请求中,从那里继续(正如其他人所建议的那样) .

关于php - 将 URL 中的 ID 替换为用户名,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16575304/

相关文章:

php - 在短代码中插入变量值

php - 未提交空白结果 mysql php

php - Kohana3 : Different . htaccess rewritebase 和 kohana base_url 用于开发和生产环境

apache - htaccess - 当请求的 URL 是我系统上的文件夹时,重写规则不起作用

mysql - 如何在mysql中按特殊字符排序

php - 在目录 .htaccess 中不给任何人访问权限

javascript - 如何在循环中独立显示/隐藏具有相同类名的 div

php - Symfony - 以嵌套形式检索未映射的字段

php - nohup :ignoring input and appending output to 'nohup.out'

mysql - 如何将 DB2 中的 for 语句转换为 MYSQL