php怎么做页面静态化

Souleigh ✨ 等级 708 0 0

php怎么做页面静态化

页面静态化的好处

根据不同情况,有些需要生成静态页,有些实现伪静态即可,根据实际需求进行抉择。而静态化的好处,总结下来有以下几点:

● 提高访问速度

● 减少服务器压力

● 有利于SEO

● 提升网站稳定性

PHP生成静态页

PHP生成静态页有多种方法,此次使用的是ob系列函数,函数内容可查看官方手册。

<?php
$website = $\_GET\['website'\];
ob\_start();// 打开输出缓存
$content = file\_get\_contents('http://www.'.$website.'.com');
echo $content;// 输出内容,此部分的内容为静态页的内容
file\_put\_contents('./'.$website.'.html', ob\_get\_contents());
ob\_end\_clean();// 关闭
echo $content;

Rewrite重写规则

在.htaccess中实现Rewrite重写规则,至于使用.htaccess是否影响效率不在讨论范围之内。

RewriteEngine on
# 如果有符合条件的静态页,返回静态页
RewriteCond %{REQUEST\_FILENAME} !-d
RewriteCond %{REQUEST\_FILENAME} !-f
# 路由重写
RewriteRule ^(\\w+).html$ /index.php?website=$1

测试

此时访问域名 www.youWebsite.com/baidu.html,由于没有静态页,相当于请求到 www.youWebsite.com/index.php?website=baidu。通过PHP的处理,已经生成baidu.html文件。

再次访问 www.youWebsite.com/baidu.html,这时由于存在baidu.html文件,直接返回静态页,而不再请求PHP。

有几点注意事项:

● 检查apache是否开启 Rewrite

● Linux下文件权限

收藏
评论区

相关推荐

dubbo网关演进之路
本文已收录 https://github.com/lkxiaolou/lkxiaolou 欢迎star。 背景随着公司业务的飞速发展,基于php的模块化架构难以支持未来业务的发展: php模块化架远远落后于行业主流架构(微服务–云原生),而php生态的服务治理开源组件匮乏,研发投入过大 杭州php人才匮乏,导致新鲜血液招聘困难 基于php的多进程架构难以支撑
PHP 技能精进之 PHP
PHP-FPM 提供了更好的 PHP 进程管理方式,可以有效控制内存和进程、可以平滑重载PHP配置。那么当我们谈论 PHP-FPM 多进程模型的时候,作为 PHPer 的你了解多少呢? 首先,让我们一起看几个问题: ①:PHP-FPM 启动进程的方式主要有哪几种,区别是什么? ②:PHP-FPM,是主进程接收请求转给子进程,还是子进程单独接收请求并处理
PHP代码优化的一些重要技巧
除了要学习PHP的基本知识,比如《为开发者准备的9个实用PHP代码片段》《深入探讨PHP类的封装与继承》《PHP比较运算符的详细学习》,还要了解一些代码优化上的技巧,从而帮助我们写出更加优秀的程序。我们在编写程序时,总是想要使自己的程序占用资源最小,运行速度更快,代码量更少。PHP 独特的语法混合了 C、Java、Perl 以及 PHP 自创新的语法,它可以
PHP数据结构之实现链式二叉树与遍历
<?php /******************************************************** * 我写的PHP都是从C语言的数据结构中演化而来************************ **********************************************
mysql数据库优化课程
mysql数据库优化课程---9、php用什么写的 ========================= 一、总结 ---- ### 一句话总结:php是用c语言写的,所以php里面的那些模块什么都是c语言 ##### c语言:php是用c语言写的,所以php里面的那些模块什么都是c语言 ### 2、google搜索和百度搜索的区别是什么? ####
11.32 php扩展模块装安装
1.32 php动态扩展模块安装 ---------------- **注:** 本节操作使用PHP7。 查看PHP模块: [root@cham002 ~]# /usr/local/php/bin/php -m [PHP Modules] bz2 Core ctype date dom e
Bootstrap 结合 PHP ,做简单的登录以及注册界面及功能
登录实现 ==== HTML代码 <div class="container"> <?php if (isset($error_msg)): ?> <div class="alert alert-danger" role="alert"><?php echo $error_msg; ?></div>
CentOS6编译安装LAMP(CentOS6、httpd
安装环境说明: ------- (软件下载地址在文末附录) 1. Linux : CentOS release 6.9 (最小化安装) 2. Apache : httpd-2.4.33.tar.bz2 3. MariaDB : mariadb-10.2.14-linux-x86\_64.tar.gz 4. PHP : php-7.1.17.tar
CentOS7编译安装LAMP(CentOS7、httpd
安装环境说明: ------- (软件下载地址在文末附录) 1. Linux : CentOS Linux release 7.4.1708 (Core)(最小化安装) 2. Apache : httpd-2.4.33.tar.bz2 3. MariaDB : mariadb-10.2.14-linux-x86\_64.tar.gz 4. PHP
Centos配置nginx+php
添加第三方源: yum install epel-release 安装nginx: yum install nginx 安装php: yum install php php-fpm php-mbstring php-mysql php-gd php-fastcgi php-cgi 安装redis: yum ins
Discuz x2.5 单页制作的教程
_首先,单页包括该单页的php文件和该单页的模板(.htm)文件,比如:host.php、host.htm_ __单页的php文件内容如下:__ <?php require './source/class/class_core.php';//引入系统核心文件 $discuz = & discuz_core::instan
JS前端图形化插件之利器Gojs组件(php中文网)
JS前端图形化插件之利器Gojs组件(php中文网) ========================== 一、总结 ---- ### 一句话总结:php中文网我可以好好走一波 二、JS前端图形化插件之利器Gojs组件 -------------------- 参考: JS前端图形化插件之利器Gojs组件-js教程-PHP中文网 http://
Larave
作者 -- 本文由 张舫 童鞋投稿 > 同时也欢迎更多的小伙伴投稿 开发需求 ---- PHP >= 7.0.0OpenSSL PHP ExtensionPDO PHP ExtensionMbstring PHP ExtensionTokenizer PHP ExtensionXML PHP ExtensionApache/NginxMySQ
PHPcpp 变量和类型
    用PHPCPP来开发PHP扩展是非常容易的,最主要的就是变量类型和PHP中的变量类型一毛一样,最重要的是写法也是一毛一样。     在PHP中,变量默认是没有类型的,我们赋给他整数,他就是整形,赋给他字符串他就是string,也就是说PHP中的变量类型是随着值来定义的。PHPCPP在这里也是做了很大的优化,实现了类型随值的类型来定义。 P
PHP配置优化:php
> PHP-FPM是一个PHP FastCGI管理器,php-fpm.conf配置文件用于控制PHP-FPM管理进程的相关参数,比如工作子进程的数量、运行权限、监听端口、慢请求等等。 我们在编译安装PHP的时,在./configure的时候带 –enable-fpm参数即可开启PHP-FPM。PHP-FPM配置文件为 php-fpm.conf,其语法类似 p