伪静态技术可以有两种方法来处理:
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的,因为它不是真正意义上的静态页,每次请求是要读取数据库的,但可以用缓存技术补偿下。