五,伪静态技术实现页面静态化

 伪静态技术可以有两种方法来处理:

1,在php文件中,直接使用正则表达式技术处理;

http://localhost/index.php/2,111,345.html,在index.php文件中会获取2,111,345.html将其组成新的文件,再跳转到新的文件即可。

<?php
$parameters = $_SERVER['PATH_INFO'];
if(preg_match('/^/(d+),(d+),(d+).html/si',$parameters,$arr)){
    $file = "http://127.0.0.1/".$arr[1].'-'.$arr[2].'-'.$arr[3].'.html';
    header("Location:".$file);
}else{
    echo '地址出错!';
}

  

2,配置apache的rewrite机制;

 (1)apache启用rewrite机制,打开httpd.conf,LoadModule rewrite_module modules/mod_rewrite.so前面的#去掉。

 (2)虚拟主机,在操作系统的hosts文件添加 127.0.0.1 www.hsp.com。

(3)在httpd.conf中启用虚拟主机,Include conf/extra/httpd-vhosts.conf前面的#去掉。

(4)打开httpd-vhosts.conf文件,

<VirtualHost *:80>
#    ServerAdmin webmaster@dummy-host2.example.com
    DocumentRoot "E:/Program Files/AppServ/www/resume"
    ServerName www.hsp.com
    ErrorLog "logs/dummy-host2.example.com-error.log"
#    CustomLog "logs/dummy-host2.example.com-access.log" common
    <Directory "E:/Program Files/AppServ/www/resume/hello1">
	#    拒绝所有访问 Allow/deny
	    Allow from all
	#    是否显示列表(项目发布后一般不启用)
	#    Options +indexes
	#    是否启用rewrite
	     AllowOverride all
    </Directory>
    <Directory "E:/Program Files/AppServ/www/resume/hello2">
#    拒绝所有访问 Allow/deny
    deny from all
#    是否显示列表(项目发布后一般不启用)
#    Options +indexes
#    是否启用rewrite
#     AllowOverride all
  </Directory>
</VirtualHost>

(5)添加rewrite规则,可以在resume文件夹或hello1、hello2文件夹,添加.htaccess文件,.htaccess文件中添加rewrite规则,也可以在httpd-vhosts.conf文件添加rewrite规则,rewrite负责如下:

RewriteEngine On

RewriteRule news-id(d+).html$ news.php?id=$1

直接将内容复制到.htaccess文件,或者在httpd-vhosts.conf的某个目录下AllowOverride all下一行添加以上内容。

3,伪静态技术是站在seo角度看,他对于的页面是不存在的,而是每次每次查询数据库得到的信息。真静态的页面是真实存在的。如果一个网站使用真静态技术,会生成海量的html静态页面,可以考虑使用伪静态技术来优化我们的网站。

url重写(伪静态)的好处:(1)可以方便实现对引擎的优化,并且比生成静态页面更加方便。(2)占空间比较小。(3)首页每天都自动变化,不用维护。网站首页一般都有热点排行之类的,你可以设为24小时排行,一周排行,再加上最新文章,最新点评等。这样首页天天是有变化的。(4)便于广告的轮显。比如,可以把art1234.php,这个虚成n个页,如art_1234.php,news_1234.php,,top_1234.php,在不同的页面放不同的广告。总之是动态的。你就可以随意动。

url重写的缺点:效率不如生成html的,因为它不是真正意义上的静态页,每次请求是要读取数据库的,但可以用缓存技术补偿下。

原文地址:https://www.cnblogs.com/usa007lhy/p/5743854.html