2

假设我想使用 php 在我的网站上生成动态数据,但我不希望用户转到任何.php页面。

相反,我想每晚运行一次 php 脚本并保存一个.html文件,以便在浏览我的网站时用户只看到静态 html。

我描绘的方式是,对于需要动态数据的每个页面,都有一个 .html 和一个 .php 。例如:

  • newsAndInformation.html
  • newsAndInformation.php

这是常见的做法吗?有没有像这样的好教程?

4

3 回答 3

4

您可以通过在 .htaccess 文件中使用巧妙的 mod_rewrite 规则来加快使用静态页面的站点。

RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^Example/ index.php [L,NC,QSA]

该规则执行以下操作...

  1. 检查请求的 URL 的文件是否不存在

  2. 检查请求的 URL 的目录是否不存在

  3. 如果是 - 显示静态文件/目录(目录需要一个 index.html 文件)

  4. 如果否 - 重定向到您的 PHP 文件,该文件可以运行,然后为下一个请求保存适当的文件

你的 PHP 文件会输出响应:

<?php
ini_set('zlib.output_compression', 'On');

ob_start();

// Logic to create your content...

// use ob_get_contents() to get the response and save it

ob_end_flush();
?>

一个粗略的例子是......

yoursite/Example/Test/

在第一次访问时,这将访问您的 PHP 页面。然后您将文件保存到/Example/Test/index.html,第二个请求将在不使用 PHP 的情况下提供静态页面。

于 2013-02-22T17:36:19.963 回答
0

您可以创建一个简单的类fwrite来执行此操作。

如果您有足够的数据需要更复杂的解决方案,您可以找到更广泛的缓存系统。

于 2013-02-22T17:37:45.560 回答
0

.htaccess在您的文件中添加以下内容

RewriteEngine on 
RewriteRule ^(.*)\.html $1\.php

这将http://www.domain.com/myPage.html真正指出,http://www.domain.com/myPage.php但用户看到.html

于 2013-02-22T17:38:00.300 回答