【问题标题】:Get friendly URL and query database获取友好的 URL 和查询数据库
【发布时间】:2018-11-09 02:57:01
【问题描述】:

我需要知道什么网络服务器和服务器端框架可以让我实现以下目标:

我不知道这种技术是否有技术名称。所以基本上想获取我域中的任何 url 并使用它来查询数据库。

例如,如果我导航到http://example.com/jack.htm,我想做“从用户中选择 *,其中名称类似于 %jack%”

然后我想在网页中返回类似:

我们的用户名叫 Jack:

  • 杰克·马丁斯 26 岁
  • 杰克·约翰逊 32 岁 等等。

显然我们有一个包含所有用户名和年龄的 sql 数据库。此外,jack.htm 在我的 Web 服务器中不作为 htm 文档存在,我需要即时生成它,但实际上不会永远保留它。

【问题讨论】:

  • 基本上,任何网络框架都可以工作,例如python中的flask

标签: .htaccess web webserver


【解决方案1】:

您的网络服务器需要重写 URL 并将“.htm”之前的部分转换为使用该参数查询数据库的现有页面的参数。

例如。阿帕奇配置

RewriteRule /\(.*\)\.htm$  /querydb.php?$1 

我没有使用 .htaccess 的经验,但类似:

RewriteRule ^\(.*\)\.htm$  /querydb.php?$1

注意 querydb.php 中的 SQL 注入

jack.htm 永远不需要存在,如果存在,也不会被使用。

【讨论】:

  • 我想避免任何人知道 querydb.php 的存在。如果我使用这种方式,用户浏览器中的 URL 会改变吗?用户是否能够使用 devtools、inspectors 找到有关 querydb.php 的信息。等等?我不希望任何人手动调用 querydb.php?$1、querydb.php?$2 等 querydb.php 只能从服务器的本地主机访问
  • 不,保留“重定向”内部,不要向用户发送修改后的 URL。您可以轻松阻止对 querydb.php 的直接请求。
猜你喜欢
  • 2013-01-29
  • 2015-03-29
  • 2017-05-23
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多