【问题标题】:What is the term/process name for creating a page by/for users on a website?由/为网站上的用户创建页面的术语/过程名称是什么?
【发布时间】:2025-12-01 14:30:01
【问题描述】:

对于糟糕的解释,我深表歉意。我的意思是堆栈溢出如何为每个被问到的问题提供一个特定的 URL。当我创建这个问题时,这是一个被添加到 Stack Exchange 域的全新页面吗?我猜不是,但我不明白这个过程。这叫什么?

比方说,我想创建一个网站,当用户注册时,会为他们创建一个带有www.domain.com/user1 或其他方向的页面。我需要学习什么才能做到这一点?我不需要细节,但我根本不知道这叫什么来了解如何学习它!

我至少会假设它与一般的 php/服务器端脚本有一些/很大的关系。

【问题讨论】:

  • 关于 Stack Overflow 的通知,它在很大程度上被忽略了。您可以将其剥离并仅保留 ID 部分。像 Code Igniter 这样的框架使这很容易做到。这一切都是动态的,目录中没有真正的文件。
  • 您需要“多页”一词吗?它更像是托管?用户访问您的页面,然后她/他可以创建一个帐户并上传自己的主页 - 只能在您的域中使用,例如 doamin.com/user1?
  • @JonathonReinhart 啊,我明白了。我确实认为它不会保存所有页面。你知道这个过程被称为什么,你保存一个页面或 ID,其中的信息可以链接到,就好像它是一个真实的页面一样?
  • @Haudegen 不完全是。我正在制作一个页面来显示某人在游戏中的统计数据。所以他们会创建一个账户,它会根据他们的账户信息生成他们的统计数据。然后,该页面可以链接到任何人,以显示他们的统计数据,如果这有意义的话?
  • 然后你可以试试这个:创建类似:profile.php 并且在这个 php 文件中你可以创建一个脚本,它将显示用户统计信息(可能保存在 MySQL 数据库中).. 只是添加一个用户 ID,您可以将其添加到 url,例如:profile.php?userID=1 ... 之后,您可以使用 htaccess 将 URL/Server 行为从 profile.php?userID=1 更改为 domain.com/user1

标签: php dynamic server-side


【解决方案1】:

此过程称为URL Rewriting,通过将重写规则添加到您的.htaccess 文件来完成(在一个名为 Apache 的服务器上,我假设您正在使用它。还有其他方法可以在 Microsoft 和 Nginx 服务器上进行 URL 重写; 查一下)。

你可以在你的 .htaccess 文件中加入这样的内容:

RewriteEngine On
RewriteRule ^user([0-9]+)/?$ /profile.php?id=$1 [L]

此规则使用正则表达式捕获以“user”开头并以“some number”结尾的任何 URL,并将该请求发送到 profile.php?id=number

基本上就是这样。在 PHP 文件 profile.php 中,您可以使用 $_GET['id'] 访问 ID,就像有人输入 profile.php?id=99 时一样,除了他们的 URL 看起来像 /user99

【讨论】:

  • 大多数时候,您只需使用一次重写,将index.php 从 url 中隐藏起来,然后根据一组路由规则检查剩余部分 [例如/users/:id/posts/:id/comments 等等],这是由 PHP 而不是 Apache 处理的。
  • @moonwave99 是的,像 Wordpress 这样的许多网站都使用包罗万象的重写规则,然后在 PHP 中进行 URL 匹配。我将我的答案调得更具体一点,希望 k4kuz0 可以根据他的需要扩展逻辑。
最近更新 更多