asp.net的网址重定向方法的比较:面向搜索引擎友好
Posted on 2006-01-09 17:04 随心所欲 阅读(2947) 评论(26) 编辑 收藏 引用 网摘 所属分类: 通讯/WebServer 、 其他技术
应用:面向搜索引擎友好。
比如xxx.com/news.aspx?id=5 这样的网址搜索引擎是不感兴趣的, 可以重定向成 xxx.com/news/5.htm。
重定向有几个层次
1:IIS之上
在请求没有进入IIS分配aspx处理的时候进行重定向。好处是不管是不是xx.aspx都可以进行处理,就算是php的一样可以重定向到asp.net处理程序里面。
2:Asp.net中
比如放在globle里面,可以重定向xx.aspx,但是不能重定向目录,或者.htm之类的。(设置筛选器也可以,麻烦一点)
所以我选择的是第一种方法。
有一个工具很不错:IISRewrite,qwerksoft制作。
比如xxx.com/news.aspx?id=5 这样的网址搜索引擎是不感兴趣的, 可以重定向成 xxx.com/news/5.htm。
重定向有几个层次
1:IIS之上
在请求没有进入IIS分配aspx处理的时候进行重定向。好处是不管是不是xx.aspx都可以进行处理,就算是php的一样可以重定向到asp.net处理程序里面。
2:Asp.net中
比如放在globle里面,可以重定向xx.aspx,但是不能重定向目录,或者.htm之类的。(设置筛选器也可以,麻烦一点)
所以我选择的是第一种方法。
有一个工具很不错:IISRewrite,qwerksoft制作。
安装使用方法:
1:把配置文件rewrite.ini和RewriteEval.dll两个文件放在同一个目录下,现在是建立在C:/WINDOWS/system32/inetsrv/IISRewrite目录里面。
2:在IIS上添加一个ISAPI筛选器:IIS管理工具/要添加的网站/属性/ISAPI筛选器/添加--找到RewriteEval.dll
3:测试运行:重启IIS服务,把helloworld.htm文件放置到IIS主目录,然后访问localhost/xxhelloworldxxx. 如果可以打开该文件,表示安装成功(凡是任何包含helloworld字样的访问路径都可以)
4:配置重订向规则:打开rewrite.ini,然后加入一个规则 RewriteRule .*ventureT/([^.]*) /ventureT/subT/sIndex.aspx?id=$1。 使用的是正则表达式,意思是:凡是没有任何后缀(不加‘.’)的访问,都没重定向到sIndex.aspx,并且把ventureT/以后的字符串作为参数传递给sIndex。
5:正则表达式不区分大小写
6:意义:不仅可以重订向xx.xxx这样的文件,还可以重定向目录、没有后缀的等等(内置在IIS里面的都不能实现这种功能)
7:程序里面的代码不需要修改:Resposne.Redirect("xxx.aspx?id=xx")这样的语句依然没问题,虽然在IIS上重定向,他依然可以把这个地址重定向到你需要的地方;用js打开的就跟没问题了。
至于第二种方法,也可以,但是不能重定向目录(还没有重定向到asp..net的处理域,所以代码不会执行)
有高手已经写的比较清楚了(ThunderMain.URLRewriter),有源码。
http://www.cnblogs.com/edobnet/archive/2004/06/02/12866.aspx
这是配置的一个例子
<rule>
<url>VentureT/([^.].*)</url>
<rewrite>VentureT/subT/sIndex.aspx?id=$1</rewrite>
</rule>
还有一个也不错:url rewriter,Helicon制作
原文: http://www.chedong.com/tech/google_url.html
也是用正则表达式来写的。
其实还有一种方法,就是自己写程序作重定向了。
7:程序里面的代码不需要修改:Resposne.Redirect("xxx.aspx?id=xx")这样的语句依然没问题,虽然在IIS上重定向,他依然可以把这个地址重定向到你需要的地方;用js打开的就跟没问题了。
至于第二种方法,也可以,但是不能重定向目录(还没有重定向到asp..net的处理域,所以代码不会执行)
有高手已经写的比较清楚了(ThunderMain.URLRewriter),有源码。
http://www.cnblogs.com/edobnet/archive/2004/06/02/12866.aspx
这是配置的一个例子
<rule>
<url>VentureT/([^.].*)</url>
<rewrite>VentureT/subT/sIndex.aspx?id=$1</rewrite>
</rule>
还有一个也不错:url rewriter,Helicon制作
原文: http://www.chedong.com/tech/google_url.html
也是用正则表达式来写的。
其实还有一种方法,就是自己写程序作重定向了。