PHP实现页面静态化

1-1 明确动态页面和静态页面

静态网页是由浏览器直接从服务器下载到浏览者所在机器上浏览的。
动态网页需要服务器执行(运算)成静态网页的内容,然后由浏览器下载到浏览者所在机器上浏览。
静态网页是任何网站的根基,因为浏览者浏览的内容永远是从服务器传回的静态网页的内容。
动态与静态网页并不矛盾,网站设计中往往是先使用DreamWeaver等工具设计静态网页,之后将PHP等程序嵌入静态网页中完成网站设计。
动态网页中一般会包含静态网页的内容,比如:PHP代码中通常包含HTML或CSS。
静态网页中不能包含动态网页的内容。比如:如果HTML中包含PHP的内容,那就是动态网页了。
动态网页通常与数据库相连,来完成页面的显示。比如:一个文章显示系统,可以只通过一个动态网页Display.php显示数据库中的多篇文章。而静态网页无法实现此功能。
采用动态网页可以实现很多动态功能,比如Blog登录,BBS讨论,购物车等。
由于动态网页需要服务器执行(运算),因此将消耗服务器资源,访问速度会慢于静态网页。
当网站有大数据量时,应该使用动态网页管理,减少网站维护工作量。
当网站服务器压力过大或者访问量太大时,应该使用静态页面显示。
当网站有大的数据量而且访问量很大时,应该使用动态页面管理维护网站内容,同时生成静态页面用于显示。
动态网页的网址显示方式通常带有”?”,比如http://www.mangolau.com/mangolau.php?id=999&name=monkey ,这种网址属于搜索引擎不友好的URL,应该使用urlrewrite改为静态网页的URL显示方式,比如类似于 http://www.mangolau.com/mangolau_999_monkey.html 的URL。
动态网页是需要服务器端执行的程序,由于人的原因可能使动态网页程序产生漏洞,这些漏洞可能会被黑客利用。比如我们常说的”挂马”。

1-2 关于优化页面相应时间

 

1-3 关于动态URL地址设置静态形式

1-4 静态化详细介绍

2-1 buffer认知

2-2 PHP实现页面纯静态化原理

2-3 纯静态化案例简介

2-4 纯静态化案例之步骤解析

2-5 纯静态化案例实现

2-6 触发系统生成纯静态化页面的三种方式

2-7 方式一:页面添加缓存时间

2-8 方式二:手动触发方式

2-9 方式三:crontab定时扫描程序

2-10 局部动态化案例实现(一)

2-11 局部动态化案例实现(二)

2-12 局部动态化案例实现(三)

3-1 PHP处理伪静态

3-2 WEB服务器rewrite配置

3-3 Apache下rewrite配置

3-4 Nginx下rewrite配置

linux下开启apache的url重写

Apache 2.x 中URL重写,是通过mod_rewrite.so 来实现的,所以您要查看您的Apache 是否已经被编译进去这个模块了,并且在Apache的配置文件httpd.conf 中已经调用了这个模块。

Linux开启url重写的方法:

1、打开 apache 里httpd.conf(通常是在/etc/httpd/conf目录里)

2、找到 #LoadModule rewrite_module modules/mod_rewrite.so 去掉前面的#

3、找到 AllowOverride None 改成 AllowOverride All , 有两个全部改掉

注:AllowOverride 的参数设置为ALL,表示整台服务器上都支持URL规则重写。Apache 服务器要读每个网站下目录下的 .htaccess 文件。如果没有这个文件,或者这个文档没有定义任何关于URL重写的规则就不会有任何效果。

重启apache (用命令:service httpd restart)。

Apache开启URL重写功能方法详细篇

1、关于rewrite模块的调用:
Apache 2.x 中URL重写,是通过mod_rewrite.so 来实现的,所以您要查看您的Apache 是否已经被编译进去这个模块了,并且在Apache的配置文件httpd.conf 中已经调用了这个模块。在大多数主流发行版中,Apache 2.x 是把rewrite模块已经编入进去了。比如我用的是Slackware。Apache 2.x的配置文件,放在 /etc/httpd 目录下。

在 httpd.conf 中,我们会发现类似如下的一行,是有关rewrite模块的,模块名是 mod_rewrite.so 。

LoadModule rewrite_module lib/httpd/modules/mod_rewrite.so

LoadModule rewrite_module lib/apache2/modules/mod_rewrite.so 如果前面有#号,您要去掉。对于大多数发行版来说,Apache 2的模块一般是位于如下的两个位置

/usr/lib/apache2/modules


/usr/lib/httpd/modules 如果在httpd中打开调用rewrite_module的设置,查看一下是不是能调用了,要通过 httpd -M的参数来查看;

#/usr/sbin/httpd -M

如果发现有如下一行,说明模块已经能被调用了

rewrite_module (shared)

2、设置DocumentRoot的Directory:

在Apache 2.x 中,我们会看到 DocumentRoot设置的一行。这行就是存放网页程序的地方。比如LinuxSir.Org 存放在 /opt/www 目录中。那么我们就要设置 DocumentRoot为如下的。

DocumentRoot “/opt/www” 然后我们再还要对 DocumentRoot做针对性的行为设置。在一般的情况下,httpd.conf 会给一个默认的。如果你要改 DocumentRoot的路径,同时也要改针对DocumentRoot的Directory的设置,也就是

比如我们把DocumentRoot的路径改为了 “/opt/www”,那我们也要把Directory做针对性的行为设置也要改成这个路径。

Options FollowSymLinks
#AllowOverride None 注:把这行前面加#号,然后加下面的一行 ,也就是 AllowOverride ALL
AllowOverride ALL
Order allow,deny
Allow from all
我们把AllowOverride 的参数设置为ALL,表示整台服务器上的,都支持URL规则重写。Apache 服务器要读每个网站根目录下的 .htaccess 文件。如果没有这个文件,或者这个文档没有定义任何关于URL重写的规则,则不会有任何效果。在一般的情况下,成熟的Web 服务器应用套件,都支持URL重写的,比如drupal和joomla 。当我们用这些程序时,会发现在安装包中有 .htaccess中有这个文件。我们把Apache配置好后,只是需要在这些程序的后台打开此功能就行了。

3、重启httpd服务器:

在一般情况下,在各个发行版中,都有httpd服务器启动脚本,比如
# /etc/rc.d/rc.httpd restart 注:Slackware Linux

# /etc/init.d/apache2 restart 注:ubuntu、Debian 等;
# /etc/init.d/httpd start 注:Fedora 、Redhat、CentOS

转自:http://blog.sina.com.cn/s/blog_70ac6bec01018mqa.html