搜索引擎优化魔法书-第25节
按键盘上方向键 ← 或 → 可快速上下翻页,按键盘上的 Enter 键可回到本书目录页,按键盘上方向键 ↑ 可回到本页顶部!
————未阅读完?加入书签已便下次继续阅读!
这样就把 chedong/news/234。html 映射到了:
chedong/news/news。php?id=234
一个更通用的能够将所有的动态页面进行参数映射的表达式是:
把myhost/foo。php?a=A&b=B&c=C
表现成myhost/foo。php/a/A/b/B/c/C。
RewriteRule (。*?。php)(?'^/'* )?/ ('^/'*)/ ('^/'*)(。+?)?1 (?22&:?)3=4?55:
'N,I'
以下是针对phpBB 的一个Apache mod_rewrite 配置样例:
RewriteEngine On
RewriteRule /forum/topic_ (。+)。html /forum/viewtopic。php?t=1 'L'
RewriteRule /forum/forum_ (。+)。html /forum/viewforum。php?f=1 'L'
RewriteRule/forum/user_ (。+)。html /forum/profile。php?mode=viewprofile&u=1 'L'
这样设置后就可以通过topic_1234。html forum_2。html user_34。html 这样的链接访问原来
的动态页面了。
通过URL REWRITE 还有一些好处:
隐藏后台实现 这在后台应用平台的迁移时非常有用:当从asp 迁移到java 平台时,
对于前台用户来说,根本感受不到后台应用的变化;
简化数据校验 因为像(d+)这样的参数,可以有效的控制数字的格式甚至位数;
比如我们需要将应用从news。asp?id=234 迁移成news。php?query=234 时,前台的表现可
以一直保持为 news/234。html 。从实现应用和前台表现的分离:保持了URL 的稳定性,而使
用mod_rewrite 甚至可以把请求转发到其他后台服务器上。
基于 PATH_INFO 的URL 美化
URL 美化的另外一个方式就是基于PATH_INFO:PATH_INFO 是一个CGI 1。1 的标准,
经常发现很多跟在 CGI 后面的〃/value_1/value_2〃 就是 PATH_INFO 参数,比如:
phpunixman。sourceforge/index。php/man/ls 中:PATH_INFO = 〃/man/ls〃
PATH_INFO 是 CGI 标准,因此 PHP Servlet 等都有的支持。比如 Servlet 中就有
request。getPathInfo ()方法。
第76 页
… Page 85…
搜索引擎优化魔法书 SEO Magic Book 浩维互动免费电子书 timev
注意:/myapp/servlet/Hello/foo 的getPathInfo ()返回的是/foo,而/myapp/dir/hello。jsp/foo
的 getPathInfo ()将返回的 /hello。jsp,从这里你也可以知道 jsp 其实就是一个 Servlet 的
PATH_INFO 参数。ASP 不支持PATH_INFO。
PHP 中基于PATH_INFO 的参数解析的例子如下:
注意:参数按〃/〃分割,第一个参数是空的:从/param1/param2 中解析出param1 param2
这2 个参数。
if ( isset (_SERVER'〃PATH_INFO〃') ) {
list (nothing; param1; param2) = explode ('/'; _SERVER'〃PATH_INFO〃');
}
如何隐蔽应用:例如 。php 的扩展名:
在APACHE 中这样配置:
ForceType application/x…httpd…php
如何更像静态页面:app_name/my/app。html?
解析的PATH_INFO 参数的时候,把最后一个参数的最后 5 个字符“。html”截断即可。
注意:APACHE2 中缺省是不允许PATH_INFO 的,需要设置 AcceptPathInfo on
特别是针对使用虚拟主机用户,无权安装和配置 mod_rewrite 的时候,PATH_INFO 往
往就成了唯一的选择。
OK,这样以后看见类似于example/article/234 这样的网页你就知道可能
是 article/show。php?id=234 这个php 程序生成的动态网页,很多站点表面看上去可能有很多
静态目录,其实很有可能都是使用 1,2 个程序实现的内容发布。比如很多WIKIWIKI 系统
都使用了这个机制:整个系统就一个简单的 wiki 程序,而看上去的目录其实都是这个应用
拿后面的地址作为参数的查询结果。
利用基于MOD_REWRITE/PATH_INFO + CACHE 服务器的解决方案对原有的动态发
布系统进行改造,也可以大大降低旧有系统升级到新的内容管理系统的成本。并且方便了搜
索引擎收录入索引。
附:如何在IIS 上利用PHP 支持PATH_INFO
PHP 的ISAPI 模式安装备忘:只试成 php…4。2。3…Win32
解包目录
php…4。2。3…Win32。zip c:php
PHP。INI 初始化文件
第77 页
… Page 86…
搜索引擎优化魔法书 SEO Magic Book 浩维互动免费电子书 timev
复制:c:phpphp。ini…dist 到 c:winntphp。ini
配置文件关联
按照install。txt 中的说明配置文件关联
运行库文件
复制 c:phpphp4ts。dll 到 c:winntsystem32php4ts。dll
这样运行后:会发现php 把PATH_INFO 映射到了物理路径上
Warning: Unknown(C:CheDongDownloadsariadnewwwtest。phppath): failed to create stream:
No such file or directory in Unknown on line 0
Warning: Unknown (): Failed opening 'C:CheDongDownloadsariadnewwwtest。phppath' for
inclusion (include_path='。;c:php4pear') in Unknown on line 0
安装ariadne 的PATCH
停止IIS 服务
net stop iisadmin
ftp://ftp。muze。nl/pub/ariadne/win/iis/php…4。2。3/php4isapi。dll
覆盖原有的c:phpsapiphp4isapi。dll
注:
ariadne 是一个基于PATH_INFO 的内容发布系统,
PHP 4。3。2 RC2 中CGI 模式的PATH_INFO 已经修正,照常安装即可。
2、不同具体情况下的URL 静态化抉择建议
并不是所有的动态URL 站点都需要进行URL 静态化处理,如果决策不当,会对站点某
一个阶段带来流量的重创。一般来说,如果站点信息规模已经很庞大,并且搜索引擎对其收
录效果也不是很差的情况下,就不需要 URL 伪静态化处理了。而那些站点信息量原本就少,
搜索引擎收录效果也很差的站点,就必须要对其动态 URL 进行伪静态化处理。诸如国内的
动网论坛,虽然没有做URL 的静态化处理,但是搜索引擎对其索引效率十分好。
三、URL 的关键词部署
在URL 里部署关键词的做法在英文语种的 SEO 工作中比较重视,这里简单谈一下如何
来操作。
比如在timev 网站的SEO 专栏下有一个网页,这一网页主要是介绍 SEO
书籍的,很多人可能会给它设定这么一个 URL:timev/01/1。html,或许也可
第78 页
… Page 87…
搜索引擎优化魔法书 SEO Magic Book 浩维互动免费电子书 timev
能是这么一个URL:timev/a/a。html 。
如果这个URL 被 SEO 部署了关键词后,会是什么样的呢?下面就是你想要的答案:
timev/SEO/SEO…books。html 。
如果有人在搜索引擎中搜索“SEO book ”的时候,以上网站地址中的关键词“SEO”
和“SEO books ”也被作为文本纳入了搜索引擎的文本分析中,增加了用户搜索的“SEO book ”
的关键词密度,这种做法有助增强关键词的搜索引擎排名竞争优势。
最好建议使用关键词或关键词组合构成URL;
URL 部分的各个关键词应使用“…”分隔;
如果有名词的关键词出现,最好使用其的复数形式。
为什么在关键词部署中,名词要尽量使用复数形式?
如果你的关键词使用“books ”,当用户搜索“book ”时,关键词“books ”中已经包含
了它;当用户搜索“books ”,正好是它。采用名词的复数形式能尽可能照顾用户的多样搜索
习惯,当然也可能会为你的网页赢得了更多被搜索用户找到的机会。
在这里值得指出的,也有很多中文 SEO 人员也采取了网站URL 的中文形式的关键词部
署。譬如,我们会经常看到的像 xxx/数码相机。html 类型的网站地址。一般
来说,服务器并不直接支持中文URL,所以URL 中的汉字必须转换成对应的UTF…8 编码,
Google 能正常识别UTF…8 编码的汉字,而像百度这样的本土化中文搜索引擎则不行。
图6…6…1 Google 识别URL 中汉字的情况
第79 页
… Page 88…
搜索引擎优化魔法书 SEO Magic Book 浩维互动免费电子书 timev
图6…6…2 百度识别 URL 中汉字的情况
从上面两个截图中,我们可以看出 Google 能识别URL 中的汉字UTF…8 编码。而百度
则不会识别,其显示出了乱码。
在前些年,这种做法确实能对网页的搜索引擎排名起到作用,像阿里巴巴的某些专题站
点就这样操作过。如今这样的方式似乎并不奏效,因为我们再也看不到那种带有汉字关键词
的URL 高居搜索结果榜首的局面了。
第七节 网页代码的编写
网页代码的编写是否简洁和具有逻辑性也是评估搜索引擎优化工作的一个重要指标。
一、遵循WEB 标准
建议广大网页设计师遵循国际互联网标准组织(W3C )所推荐的WEB 标准来编写网页
源码,而不是继续沿用传统的TABLE 表格布局方式来制作网页。
Web 标准是一些规范的集合,是由W3C 和其他的标准化组织共同制定的,用它来创建
和解释网页的基本内容。这些规范是专门为了那些在网上发布的可向后兼容的文档所设计
的,使其能够被大多数人所访问。
遵循WEB 标准来编写网页,可以从以下方面获益:
更简易的开发与维护 使用更具有语义和结构化的 HTML,将使得理解他人编写的代
码更为容易和快速。
与未来浏览器的兼容 使用已定义的标准和规范的代码,向后兼容的文本就消除了不能
被未来的浏览器识别的后患。
更快的网页下载、读取速度 更少的 HTML 代码带来的将是更小的文件和更快的下载
速度。如今的浏览器处于标准模式下比它在以前的兼容模式下拥有更快的网页读取速度。
更好的可访问性 语义化的 HTML (结构和表现相分离)让使用浏览器以及不同浏览
设备的读者都能很容易地看到内容。
更高的搜索引擎排名 内容和表现的分离使内容成为一个文本的主体。与语义化的标记
结合会提高你在搜索引擎中的排名。
更好的适应性 一个用语义化标记的文档可以很好地适应于打印和其他的显示设备(像
掌上电脑和智能电话),这一切仅仅是通过链接不同的CSS 文件就可以完成。同样也可以仅
仅通过编辑单独的一个文件就完成跨站点般的表现上的转换。
Web 标准可以为网站的创建者节省时间与金钱,还可以为网站的浏览者提供一个更好的
经历。如果想了解更多关于WEB 标准的知识,推荐访问站点:w3cn。org 。
二、代码的逻辑性