如何在网站中使用正斜杠

时间:2017-03-22 01:39:37

标签: javascript html web

我有一个在网址上运行的网站,例如www.mywebsite.com。我希望能够在www.mywebsite.com/userID等URL上托管不同的用户配置文件。如何为所有可能的用户ID使用相同的页面,因此网站可以显示相同的页面,但是它只为该用户ID从我的数据库中提取特定数据? 对不起,这可能是一个非常基本的问题。

1 个答案:

答案 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文件使用数据库结果填充它发送的响应页面。