假设我想使用 php 在我的网站上生成动态数据,但我不希望用户转到任何.php
页面。
相反,我想每晚运行一次 php 脚本并保存一个.html
文件,以便在浏览我的网站时用户只看到静态 html。
我描绘的方式是,对于需要动态数据的每个页面,都有一个 .html 和一个 .php 。例如:
- newsAndInformation.html
- newsAndInformation.php
这是常见的做法吗?有没有像这样的好教程?
您可以通过在 .htaccess 文件中使用巧妙的 mod_rewrite 规则来加快使用静态页面的站点。
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^Example/ index.php [L,NC,QSA]
该规则执行以下操作...
检查请求的 URL 的文件是否不存在
检查请求的 URL 的目录是否不存在
如果是 - 显示静态文件/目录(目录需要一个 index.html 文件)
如果否 - 重定向到您的 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 的情况下提供静态页面。
您可以创建一个简单的类fwrite
来执行此操作。
如果您有足够的数据需要更复杂的解决方案,您可以找到更广泛的缓存系统。
.htaccess
在您的文件中添加以下内容
RewriteEngine on
RewriteRule ^(.*)\.html $1\.php
这将http://www.domain.com/myPage.html
真正指出,http://www.domain.com/myPage.php
但用户看到.html