asp.net的网址重定向方法的比较:面向搜索引擎友好

来源:互联网 发布:数据库系统概论课后题 编辑:程序博客网 时间:2024/05/16 11:39

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制作。
原文:http://www.qwerksoft.com/products/iisrewrite/
安装使用方法:
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
也是用正则表达式来写的。


其实还有一种方法,就是自己写程序作重定向了。

Feedback

# re: asp.net的网址重定向方法的比较:面向搜索引擎友好  回复  更多评论   

2006-01-10 09:37 by myzerg
url rewriter,Helicon
不错,不过就是收钱的
网站www.danceshopper.com 就用了这个,省了朕很多事情
有一个免费版本 功能比较弱

# re: asp.net的网址重定向方法的比较:面向搜索引擎友好  回复  更多评论   

2006-02-20 23:30 by aidi
我想知道能否自己用ASP教本实现这个重定向功能。因为服务器扩展我做不了,我不具有服务器操作的权限。

# re: asp.net的网址重定向方法的比较:面向搜索引擎友好  回复  更多评论   

2006-02-21 10:55 by 随心所欲
to aidi :
可以,放在global的处理中。
但是有局限性。

# re: asp.net的网址重定向方法的比较:面向搜索引擎友好  回复  更多评论   

2006-03-09 05:38 by aidi
谢谢回复, 但现在我连GLOBAL也用不了, 怎么办呢? 有只用脚本实现重定向的可能吗?

# re: asp.net的网址重定向方法的比较:面向搜索引擎友好  回复  更多评论   

2006-03-15 14:10 by 随心所欲
to aidi:
即使自己写HttpHandler也得操作一些服务器设置,只用脚本怕是有困难。
你具体要重定向哪一类文件呢?

# re: asp.net的网址重定向方法的比较:面向搜索引擎友好  回复  更多评论   

2006-03-15 16:55 by sp1234
“?id=5 这样的网址搜索引擎是不感兴趣的”这有点信口开河了吧?!你是说哪一个搜索引擎,举出来实例?!

# re: asp.net的网址重定向方法的比较:面向搜索引擎友好  回复  更多评论   

2006-03-15 16:59 by sp1234
搜索google等,都能看到带参数的。

通常带参数的不备收录,往往是因为他们本来就是需要登录之后才能访问的,或者经常改变内容从而不被判为重要网页(这也说明搜索引擎的技术还有成熟的余地)。与url何干?

# re: asp.net的网址重定向方法的比较:面向搜索引擎友好  回复  更多评论   

2006-03-15 18:25 by 随心所欲
搜索引擎在收录时对文件类型是有偏好的。
把带参数的动态网页打扮的像静态网页一样,让搜索引擎收录的可能性增大,这就是目的。

# re: asp.net的网址重定向方法的比较:面向搜索引擎友好  回复  更多评论   

2006-05-06 23:26 by re sp1234
re sp1234
几乎所有的搜索引擎。

# re: asp.net的网址重定向方法的比较:面向搜索引擎友好  回复  更多评论   

2006-05-06 23:34 by re sp1234
re:
asp.net中,还是可以重定向目录以及htm之类的

# re: asp.net的网址重定向方法的比较:面向搜索引擎友好  回复  更多评论   

2006-05-11 16:41 by dlwang2002
to sp1234 :
对根目录的访问,直接被IIS映像到别的进程处理去了。

# re: asp.net的网址重定向方法的比较:面向搜索引擎友好  回复  更多评论   

2006-05-17 12:25 by gzhzh
请问用了这个以后,把站点移到新的没有IISRewrite的服务器怎么办?不是要重新改站点的所有链接了吗?好大工程的啊~~

# re: asp.net的网址重定向方法的比较:面向搜索引擎友好  回复  更多评论   

2006-05-17 13:52 by 随心所欲
to gzhzh:
只能如此了。不过你可以继续使用IISRewrite。
Apache下边也有这样的module。

# 谢谢随心所欲  回复  更多评论   

2006-05-18 17:08 by gzhzh
有了IISRewrite,直接转不就得了,为什么还要NET的URLRewriter呀,一点都看不懂啊,郁闷.

# re: asp.net的网址重定向方法的比较:面向搜索引擎友好  回复  更多评论   

2006-05-18 17:22 by gzhzh
请问园主,做一个文件的重写URL就要写一条规则是吗?如果不是,该如何实现呢?谢谢!!!

# re: asp.net的网址重定向方法的比较:面向搜索引擎友好  回复  更多评论   

2006-05-18 17:32 by 随心所欲
1:可以写一条规则
2:可以实现一个IHttpHandler

# re: asp.net的网址重定向方法的比较:面向搜索引擎友好  回复  更多评论   

2006-05-19 11:12 by gzhzh
这一条规则如何写啊?谢谢!

# re: asp.net的网址重定向方法的比较:面向搜索引擎友好  回复  更多评论   

2006-05-20 17:03 by 随心所欲
RewriteRule .*ventureT/([^.]*) /ventureT/subT/sIndex.aspx?id=$1
这是一个例子。
意思是:把访问ventureT/下边的不包含有“.”的任何字符 都转换成/ventureT/subT/sIndex.aspx?id=$1。 其中$1就是([^.]*)匹配之后的结果。

根据你的具体需求,你自己写你自己的匹配算法和正则表达式。^_^

# re: asp.net的网址重定向方法的比较:面向搜索引擎友好  回复  更多评论   

2006-05-22 10:31 by gzhzh
谢谢园主~~
最终还是要转向一个具体的地址:(
如果可以做成
RewriteRule .*/([^.]*) /*.aspx?id=$1
就好了,访问的目录名是什么,就重定向什么文件名,一条就可以搞掂~比如访问aa/12/就会重定向到aa.aspx?id=12~~

# re: asp.net的网址重定向方法的比较:面向搜索引擎友好  回复  更多评论   

2006-05-22 11:06 by 随心所欲
to gzhzh:
你说的这种功能当然可以做到,并且很简单。

RewriteRule (.*)/([^.]*) /$1.aspx?id=$2 差不多就是这种表达式了。
可以做很多个匹配,每一个()算一个;引用时根据顺序$1,$2,$x...

正则表达式的功能非常的强大。

# re: asp.net的网址重定向方法的比较:面向搜索引擎友好  回复  更多评论   

2006-05-22 15:10 by gzhzh
都明白了,谢谢园主!

# re: asp.net的网址重定向方法的比较:面向搜索引擎友好  回复  更多评论   

2006-05-25 17:23 by jianchen
收藏。

# re: asp.net的网址重定向方法的比较:面向搜索引擎友好  回复  更多评论   

2006-06-01 18:41 by cnptop
内置在IIS里面的都不能实现这种功能)
采用乏匹配,可以实现

# re: asp.net的网址重定向方法的比较:面向搜索引擎友好  回复  更多评论   

2006-06-01 20:16 by 随心所欲
@cnptop
乏匹配?
愿闻其详。

# re: asp.net的网址重定向方法的比较:面向搜索引擎友好  回复  更多评论   

2006-06-30 23:52 by hang
请问qwerksoft的IISRewrite性能如何?日访问10万IP性能方面会有明显的问题吗?谢谢
 
原创粉丝点击