SEO优化教程:动态网页静态化
虽然大多数搜索引擎的蜘蛛程序现在基本都可以解读符号?后的字符,但搜索引擎更喜欢静态文件,所以要对动态网页静态化。
在介绍静态化之前,介绍一些常用的正则表达式:
符号 |
匹配字符 |
示例 |
\d |
任何十进制数字 |
等价于[0-9] |
\D |
任何非数字 |
等价于[^0-9] |
|
\s |
任何空白字符 |
空格、制表符、分页符 |
|
\S |
任何非空白字符 |
等价于[^\f\n\r\t\v] |
|
\w |
任何单词字符 |
等价于[A-Za-z0-9_] |
|
\W |
任何非单词字符 |
等价于[^A-Za-z0-9_] |
|
\n |
回车换行 |
||
. |
除 \n 以外的任何字符 |
(.)+ 匹配除换行符以外的所有字符串 |
|
? |
0个或1个前面的字符 |
ab?c? 可以且只能匹配abc、abbc、abcc 和abbcc |
|
* |
零个或多个所有的字符 |
ab* 可以匹配ab、abb、abbb |
|
+ |
一个或多个所有字符 |
ab+ 可以匹配abb、abbb等,但不匹配ab |
|
{n} |
n表示数量 如果是2,表示2个字符 |
a{2} 可以匹配aa,但不匹配a |
|
{n,n} |
从几个字符开始到几个字符结束,如 果不写,表示至少或者至多 |
a{3,} 匹配aaa、aaaa等,但不匹配a和aa。 |
|
x|y |
匹配x或y |
ab(c|x)yz匹配 abcyz和abxyz |
|
\? \. \* \+ |
? . * + |
这里我介绍几种静态化方法:
1. 使用 IIS_ReWrite 静态化处理,适合 PHP、ASP、ASP.NET 程序。
A. isapi_rewrite.isapi_rewrite分精简(lite)和完全(full)版.精简版不支持对每个虚拟主机站点进行重写,只能进行全局处理,精简版下载地址 ISAPI_Rewrite 2.7 For IIS 。
B.
C. 打开文件:开始菜单->程序->Helicon->ISAPI_Rewrite->httpd.ini
D. 将 RewriteRule /user/(\d+).htm /user.asp\?id=$1 [I,O] 加入内容中。
E. 在浏览器地址栏输入:/user/1.htm 页面将指向 /user.asp?id=1。
2. 使用虚拟主机的 ASP 网站,需要使用 404 错误操作实现静态化。
A. 下载 404 处理页面。404_Rewrite_GB2312.rar
B. 解压后将 Rewrite.asp、 error.asp 放在网站的根目录。
C.
D. 在 error.asp 里添加处理命令:
Call ParaseUrl("/(\d+).htm","/user.asp?User=$1")
E. 在需要静态化的实例 user.asp 页面中添加代码:
<!-- #include virtual="/rewrite.asp" --> 引用文件
<%
response.write "<li>Para=" & session("Para") ‘变量是通过 Session 传递
‘原来使用 request(user)获得参数的命令,需要修改成 request_(user)调用response.write "<li>request_(""User"")=" & request_("User")
‘原用 request.querystring (user)获得参数命令,修改为 request .querystring (user)调用response.write "<li>request .querystring(""User"")=" & request .querystring("User")
%>
F. 在地址栏输入/1.htm ,实际调用 /user.asp?user=1
3. 使用 asp.net 开发的网页程序,使用 URLRewriter.dll 实现静态化。
1. 下载 URLRewriter.rar,解压后放在/bin/目录下
2. 将 URLRewriter.rar 加入工程引用。
3. 配置 IIS 站点 ,将扩展名为 html 指向处理程序 aspnet_isapi.dll。IIS 站点->属性->主目录->配置->添加
可执行文件和 aspx 处理相同,都是c:\windows\microsoft.net\framework\v2.0.50727\aspnet_isapi.dll 特别注意,一定不要选择 检查文件是否存在。
4. 在 web.config 中添加配置内容,压缩包里有。
<configSections>
<section name="RewriterConfig" type="URLRewriter.Config.RewriterConfigSerializerSectionHandler, URLRewriter" />
</configSections>
<!-- 实际重定向 -->
<RewriterConfig>
<Rules>
</Rules>
</RewriterConfig>
<RewriterRule>
<LookFor>~/(\d*).html</LookFor>
<SendTo>~/user/default.aspx?link=$1</SendTo>
</RewriterRule>
<system.web>
<!--
需要在 IIS 里面增加 html 引用,改成 aspx 的引用
-->
<httpHandlers>
<add verb="*" path="*.aspx" type="URLRewriter.RewriterFactoryHandler, URLRewriter" />
<add verb="*" path="*.html" type="URLRewriter.RewriterFactoryHandler, URLRewriter" />
</httpHandlers>
5. 在地址栏输入 http://localhost/1.html 指向 http://localhost/user/default.aspx?link=1
4. 基于 Apache HTTP Server 静态化
Apache Web Server 的配置 (conf/httpd.conf )
1. 在 httpd.conf 文件中查找 LoadModule rewrite_module modules/mod_rewrite.so
通常该行被注释,去掉#。如果没有就增加该行。
2. 加入代码:
<IfModule mod_rewrite.c> RewriteEngine On
RewriteRule ^/([0-9]+).html$ /user.php?user=$1
</IfModule>
3. 如果网站使用通过虚拟主机来定义,请务必加到虚拟主机配置文件.htccess 中去,否则可能无法使用。
4. 重启 Apache,重新载入配置。
5. 在地址栏输入 http://localhost/1.html ,实际指向 http://localhost/user.php?user=1
5. 静态化后文件格式
链接静态化后可以是 html 文件,也可以是目录,通常目录的权重大于文件的权重,可以在搜索引擎中获得更好的排名。
例如:优化前:http://www.supercss.com/user.asp?id=1 优化后 文件:http://www.supercss.com/user/1.html
目录:http://www.supercss.com/user/1/
同等条件下 http://www.supercss.com/user/1/ 有更高的优先权。
发表评论 取消回复