
SEO实战之: URL重写实现动态页面静态化 (2009- 06-12 23:23:17)标签: url 重写 url-rewrite 动态页面分类: 电子技术篇 静态化seo 搜索引擎优化 早就想将我们的网站实现静态化,但是由于涉及到整体网站的修改,工作量巨大, 需要较长 时间,一直拖到现在。趁着我们进入淡季,终于把这件事完成了。 静态化对于SEO的意义在于,搜索引擎对链接中的问号,“”号等比较感冒,因此不利于 搜索引擎对这些网页的收录,而且也会不计入内链数量。据说google 等正在改进对动态链 接的支持,我没有考证过。不过考虑到毕竟不止有google 一个搜索引擎,静态化的工作还 是必须的。 静态化当然还有客户界面更友好等优点,此处就不多详述了。 实现静态化有很多技术,比如套模板的方法,但是后期维护工作将十分麻烦。 最终,我还是选择了方便的伪静态化技术,即URL rewrite (URL重写)。毕竟,我的目的 只是 seo 。所谓伪静态化,就是访问者和搜索引擎看不到问号和和号等了,但实际上页面还 是动态的。 经比较试验,选用了UrlRewriting.Net (我的网站基于. Net 的)。 下载地址:/155/de/downloads.html 使用起来也很方便,只要把dll 文件放入 bin 目录,然后在web.config 中做好相应配置即 可。主要是这几段: 在configuration 节点内加入 !-- for url rewritingnet-- configSectionssection name=urlrewritingnet requirePermission =false type=UrlRewritingNet.Configuration.UrlRewriteSection, UrlRewritingNet.UrlRewriter / /configSections !-- end for url rewritingnet-- 在system.web 节点内加入 !-- for url rewritingnet--httpModulesadd name=UrlRewriteModule type=UrlRewritingNet.Web.UrlRewriteModule, UrlRewritingNet.UrlRewriter / /httpModules !-- end for url rewritingnet-- 还是在 configuration节点内加入(放在前面的configsections之后) !-- for url rewritingnet-- urlrewritingnet rewriteOnlyVirtualUrls=true contextItemsPrefix=QueryString defaultPage = index.aspx defaultProvider=RegEx xmlns=/schemas/config/2006/07rewrites add name=RewriteRule1 virtualUrl=^~/(\d+).aspx rewriteUrlParameter=ExcludeFromClientQueryString destinationUrl=~/Default.aspx?ID=$1 ignoreCase=true / add name= RewriteRule2 virtualUrl=^~/website /(.*)/default.aspxrewriteUrlParameter=ExcludeFromClientQueryStringdestinationUrl=~/website /default.aspx?id=$1ignoreCase=true //rewrites /urlrewritingnet !--end for url rewritingnet-- 上面每个 add 都是一个重写规则,你可以根据自己的要求增加规则。 你可以实现四种重写 1、扩展名不变,如 add name=RewriteRule1 virtualUrl=^~/(\d+).aspx rewriteUrlParameter=ExcludeFromClientQueryString destinationUrl=~/Default.aspx?ID=$1 ignoreCase=true / 重写的结果是,把类如 default.aspx?id=123456的链接转换成 123456.aspx add name= RewriteRule2 virtualUrl=^~/website /(.*)/default.aspxrewriteU




