在 Apache 中,是否有任何方法(使用 CGI 和 PHP 等脚本)可以获取所有静态内容(html、图像和指定大小范围内的文件)并将其作为随机链接发送给用户,并设置有效期(例如 30 分钟)?最好不要使用 mod_proxy 或它的反向方法,因为所有文件都在同一台服务器上。我只是想学习一种合理的方法来制作类似这样的内容:http://www.example.com/09-21-2011/USA/CA/article-name.html表现为http://www.example.com/09-21-2011/USA/CA/randomnumbersandletters(没有 .html)。我意识到 html 部分可以用 mod_rewrite 轻松修复。
任何帮助都将非常感激。
这里有一个此工作原理的示例: http://memory.loc.gov/frd/cs/httoc.html 单击文章某一部分的任意链接,滚动到该页面的底部。
说道:
Do NOT bookmark these search results.
Search results are stored in a TEMPORARY file for display purposes.
The temporary file will be purged from our system in a few hours.
链接如下:
.../cgi-bin/query/r?randomnumbersandletters
可选功能是将临时会话存储在 SQL 数据库中,并包括用户 IP 和访问时间/日期。
答案1
这不是一个系统管理问题,而是一个编程问题。
一种快速、贫民窟解决方案算法:
- 建立会话
- 访问页面时,对该会话的某些表示以及 URL 栏中请求的页面的某些表示进行编码
- 如果访问文档的会话已过期或从无效主机访问,则拒绝该请求
对于类似的事情,同样贫民窟的解决方案memory.loc.gov
(是实际上是从单独的服务器中提取数据并将其存储在临时位置)
- 建立会话
- 当请求一个文件时,查看我们是否已经在该会话的本地目录中拥有该文件。
- 如果我们有该文件,则显示它(重定向用户或使用脚本语言读取它)
- 如果我们没有该文件,则检索它并将其粘贴在会话的临时目录中,然后按上述方式显示。
- 当会话的临时目录尚未被访问时
TIME_PERIOD
,将其删除。