静态生成(转载)
优点:
1、省掉了服务器处理时间和调用数据库的时间,访问速度快;
2、不用调用数据库,服务器端的CPU调用大大减少,增加服务器的性能;
3、生成静态路径利用搜索引擎的抓取和收录;
4、在排名中静态页面的排名权重要高于动态路径的页面;
5、安全,静态页面从理论上讲是没有攻击漏洞的;
缺点:
1、不能基于数据库进行站内搜索。
基本原理:
利用上一节中关于文件的读写操作知识。首先定制静态网页的模板(可以存放在数据库中也可以是文本文件),在模板中有关键字(#title# #content#),读取该模板的内容给STR。将str中的#title# #content#替换为数据库中对应字段的内容,然后把STR的内容写成.htm文件,并将其文件名写入数据库,以便于索引列表和分页使用。
难点:
分页问题是比较麻烦的一件事情。比较好的解决方式是每隔一段时间生成一次。
提示:
html扩展名的网页不一定是静态页面,将整站都做成静态浏览未必是最好的解决方案。
另一种方法:
所用基于动态的url http://www.nihaoblog.com/content.jsp?id=1&contentid=404按照各大搜索引擎的喜好,应该美化成http://www.nihaoblog.com/content/1_404.html静态网页的方式,尽管目前的google及几大搜索引擎宣称支持动态页网的抓取,但与传统的html文件相比较抓取率仍不在一个数量级。Apche的mod_rewrite模块具有此功能,但是对于租用虚拟主机的用户来说就比较麻烦不太可能对所有运营商有更多的要求,需要条件依赖就不具通用性。
目前有一个解决方法,通过UrlRewriteFilter可以完全实现动态URL表态化,你可以将它直接应用到你的web应用中,不管你用的是jsp+javabean还是struts.
下面是使用方法:
1、下载http://tuckey.org/urlrewrite/#download目前版本是1.2,解压缩后将文件考到相应的web-inf/lib和web-inf下,。
2、配置web.xml
<filter></filter>[filter]
[filter-name]UrlRewriteFilter[filter-name]
[filter-class]org.tukey.web.filters.urlrewrite.UrlRewriteFilter[/filter-class]
[/filter]
[fitler-mapping]
[filter-name]UrlRewirteFilter[/filter-name]
[url-pattern]/*[/url-pattern]
[/filter-mapping]
根据自己的需要,将相应目录下的url转给UrlRewriteFilter来处理。
3、配置urlwrite规则文件WEB-INF/urlrewrite.xml
http://www.nihaoblog.com/content.jsp?id=1&contentid=404
静态化为:
http://www.nihaoblog.com/content/1_404.html
配置如下:
<rule></rule> [rule]
[form]<from></from>/content/([0-9]+)_([0-9]+).html[/from]
[to]<to></to>/content.jsp?id=$1&contentid=$2 [/to]
[/rule]
注意:有多个参数时,中的连接符号&应该是&
<rule></rule>
[rule]
[from]^/g_detail_([0-9]+)_([0-9]+)_([0-9]+)_([0-9]+).wml$[/from]
[to type="redirect" encode="true"]/wapgame/c.x\?_i=g_detail&_g=$1&_u=$2&cl=$3&_t=$4[/to]
[/rule]
http://localhost:8080/wapgame/g_detail_236199_7399198529630713_1_070904.wml
熟悉正则表达式的朋友可能一看就是明白rule的匹配原理了。更多的配置可以参照http://tuckey.org/urlrewrite/manual/
优点:
1、省掉了服务器处理时间和调用数据库的时间,访问速度快;
2、不用调用数据库,服务器端的CPU调用大大减少,增加服务器的性能;
3、生成静态路径利用搜索引擎的抓取和收录;
4、在排名中静态页面的排名权重要高于动态路径的页面;
5、安全,静态页面从理论上讲是没有攻击漏洞的;
缺点:
1、不能基于数据库进行站内搜索。
基本原理:
利用上一节中关于文件的读写操作知识。首先定制静态网页的模板(可以存放在数据库中也可以是文本文件),在模板中有关键字(#title# #content#),读取该模板的内容给STR。将str中的#title# #content#替换为数据库中对应字段的内容,然后把STR的内容写成.htm文件,并将其文件名写入数据库,以便于索引列表和分页使用。
难点:
分页问题是比较麻烦的一件事情。比较好的解决方式是每隔一段时间生成一次。
提示:
html扩展名的网页不一定是静态页面,将整站都做成静态浏览未必是最好的解决方案。
另一种方法:
所用基于动态的url http://www.nihaoblog.com/content.jsp?id=1&contentid=404按照各大搜索引擎的喜好,应该美化成http://www.nihaoblog.com/content/1_404.html静态网页的方式,尽管目前的google及几大搜索引擎宣称支持动态页网的抓取,但与传统的html文件相比较抓取率仍不在一个数量级。Apche的mod_rewrite模块具有此功能,但是对于租用虚拟主机的用户来说就比较麻烦不太可能对所有运营商有更多的要求,需要条件依赖就不具通用性。
目前有一个解决方法,通过UrlRewriteFilter可以完全实现动态URL表态化,你可以将它直接应用到你的web应用中,不管你用的是jsp+javabean还是struts.
下面是使用方法:
1、下载http://tuckey.org/urlrewrite/#download目前版本是1.2,解压缩后将文件考到相应的web-inf/lib和web-inf下,。
2、配置web.xml
<filter></filter>[filter]
[filter-name]UrlRewriteFilter[filter-name]
[filter-class]org.tukey.web.filters.urlrewrite.UrlRewriteFilter[/filter-class]
[/filter]
[fitler-mapping]
[filter-name]UrlRewirteFilter[/filter-name]
[url-pattern]/*[/url-pattern]
[/filter-mapping]
根据自己的需要,将相应目录下的url转给UrlRewriteFilter来处理。
3、配置urlwrite规则文件WEB-INF/urlrewrite.xml
http://www.nihaoblog.com/content.jsp?id=1&contentid=404
静态化为:
http://www.nihaoblog.com/content/1_404.html
配置如下:
<rule></rule> [rule]
[form]<from></from>/content/([0-9]+)_([0-9]+).html[/from]
[to]<to></to>/content.jsp?id=$1&contentid=$2 [/to]
[/rule]
注意:有多个参数时,中的连接符号&应该是&
<rule></rule>
[rule]
[from]^/g_detail_([0-9]+)_([0-9]+)_([0-9]+)_([0-9]+).wml$[/from]
[to type="redirect" encode="true"]/wapgame/c.x\?_i=g_detail&_g=$1&_u=$2&cl=$3&_t=$4[/to]
[/rule]
http://localhost:8080/wapgame/g_detail_236199_7399198529630713_1_070904.wml
熟悉正则表达式的朋友可能一看就是明白rule的匹配原理了。更多的配置可以参照http://tuckey.org/urlrewrite/manual/