我有一个在网址上运行的网站,例如www.mywebsite.com。我希望能够在www.mywebsite.com/userID等URL上托管不同的用户配置文件。如何为所有可能的用户ID使用相同的页面,因此网站可以显示相同的页面,但是它只为该用户ID从我的数据库中提取特定数据? 对不起,这可能是一个非常基本的问题。
答案 0 :(得分:2)
您已将问题标记为JavaScript,虽然这在JS中肯定是可行的(请参阅单页应用程序),但对于服务器端处理而言,传统上更为实现(对于不熟悉的人来说可能更容易)。
网页浏览的常用流程如下:
Javascript SPA在第1阶段有效地劫持了此流程 - 当您单击链接时,浏览器不会向服务器发送响应。相反,SPA(更具体地说是它的路由器)决定如何操纵当前加载的页面以显示所需的视图。
在您的方案中,SPA会对API进行ajax调用,然后API可以使用包含用户详细信息的JSON数据进行响应。然后,SPA将使用此响应来更新页面。
最常用的SPA框架是ReactJs和Angular(尽管可能只考虑Angular 2.0)。
您的标准网络服务器(例如Apache,nginx)会使用' userID' URL的一部分,并尝试在该位置的磁盘上查找文件,并将其作为对HTTP请求的响应发送。显然你不会为每个userID创建一个文件,所以我们需要一种方法告诉服务器为每个请求发送相同的文件。这是通过URL重写完成的。这会转换请求的URL,例如
http://www.example.com/553
进入服务器可以使用的东西,例如
http://www.example.com/users.php?id=553
根据您的服务器,这是以不同的方式实现的,Apache使用mod_rewrite模块。
现在你只需要一个PHP文件 - users.php
- 它访问URL的查询参数并根据它找到的id执行数据库搜索。 (N.B.一定要看输入消毒)。然后,PHP文件使用数据库结果填充它发送的响应页面。