发表评论
第5步是必须得做吗??如果不做会有什么后果呢??
如果不是自己的服务器,这一步是很难做的。例如虚拟空间!
#2楼 [
楼主]2008-04-20 14:08 |
@zitsing
在虚拟主机上可以联系主机提供商为你添加该项设置,一般来说都会为你添加的,如果不做就实现不了httpHandlers了。
@zitsing
虚拟主机直接弄成。aspx后缀好了
如果可以改IIS,那就弄成目录形式的。目录式URL优先级高
恩.............
不知道这个dll性能咋样
伪静态是个不错的东东,但不知道为什么,我照着你说的去做,老是提示
错误 “无法识别的配置节 RewriterConfig”
#6楼 [
楼主]2008-05-07 13:48 |
@lwt_2005qq
你可以下载一下我写的源代码,看看到底是哪儿的问题呢?
这样的问题一般都是在web.config里写错了位置导致的。
很感谢你的回复.
你的代码我下下来了,但里面没有数据库.是不是不能直接运行呀.我用的是vs2005,Sql2000server,我想问一下.我直接将你代码里的URLRewriter.dll引到我的程序的bin里面,可以实现url伪静态吗?我引了一次,但是在web.config里面我按照你写的程序编写时,为什么在web.config 提示中没有类似的<RewriterConfig><Rules><RewriterRule> <LookFor><SendTo>这些节点的提示啊,是不是我引用错了.你可不要笑话我呀,对这个我还真不懂.你能不能给我发过一个简单点的例子,我下下来可以运行的.我真的想看到期待的结果.这几天从网上找了很多这方面的文章,但仍没有进展.对了我能加你的QQ吗?我的是QQ:626541701.
#8楼 [
楼主]2008-05-08 17:34 |
@lwt_2005qq
你好,感谢你对我的博客的关注!~
这个代码里的数据库呢,其实并不是一个必须有,其实现伪静态的关键,并不是数据库,而是那个Dll,至于你的web.config里没有那样的标签,你可以手动的写进去的,看编译的时候会不会出错,如果正确的话,是不会出错的,这个例子已经很简单的了,使用这个Dll不用对IIS做任何的配置即可实现了,如果还有问题,可以继续给我发邮件。
#9楼 [
楼主]2008-05-08 17:35 |
不好意思,又得打扰你了.(感觉你是一个很热心的人.)
已配置文件扩展名映射(右键点击默认网站,选择”属性-主目录-配置-映射”)
可执行文件: C:\WINDOWS\Microsoft.NET\Framework\v2.0.50727\aspnet_isapi.dll
扩展名:.html
动作:全部动作
(勾掉”检查文件是否存在”)
我自己做了一个小例子,包含两个页页(Default.aspx和detail.aspx),想实现伪静态,实现打开Default.aspx的时候显示为Default.html.我将urlrewrite.dll引进工程,配置好web.config.但运行的时候还是达不到我想要的结果.(头疼)
web.config:
<configuration>
<configSections>
<section name="RewriterConfig" type ="URLRewriter.Config.RewriterConfigSerializerSectionHandler,URLRewriter"/>
</configSections>
<RewriterConfig>
<Rules>
<RewriterRule>
<LookFor>detail/type/(.[0-9]*)\.html</LookFor>
<SendTo>detail.aspx?id=$1</SendTo>
</RewriterRule>
<RewriterRule>
<LookFor>Default.html</LookFor>
<SendTo>Default.aspx</SendTo>
</RewriterRule>
</Rules>
</RewriterConfig>
<appSettings/>
<connectionStrings/>
<system.web>
<httpHandlers>
<add verb ="*" path ="*.aspx" type ="URLRewriter.RewriterFactoryHandler,URLRewriter"/>
<add verb ="*" path ="*.html" type ="URLRewriter.RewriterFactoryHandler,URLRewriter"/>
</httpHandlers>
你的邮箱是什么?要不我把我做的发给你看看.你帮我查查怎么回事.你能加上我的QQ吗?QQ:626541701.
#11楼 [
楼主]2008-05-09 18:43 |
@lwt_2005qq
你可以发邮件到zhangyi_vip@163.com或MSN:dataset@live.cn
我把我的例子发到你的邮箱里面了.麻烦你帮我看一下吧.
#13楼 [
楼主]2008-05-11 18:53 |
@lwt_2005qq
我把你的例子改好了,很简单的一个错误,你看看。
#15楼 [
楼主]2008-05-12 10:15 |
@lwt_2005qq
不用谢,传值的URL可以在做页面的的时候,先把格式改写好就可以了。
添加第五步以后,会造成访问真正的html文件出现文件不存在的错误
<add verb="*" path="*.html" type="URLRewriter.RewriterFactoryHandler, URLRewriter" />
跟IIS里配有区别吗,自己有主机是不是配置IIS性能更加好一点呢?
#18楼 [
楼主]2008-05-26 16:50 |
@superman.net
这里是添加*.html的扩展,目的是捕获地址栏里输入*.html的地址,自己有主机也需要配置IIS里的Html扩展。
@张谊
那为什么我在本机上不用配置IIS,只在WEB.CONFIG里添加了<add verb="*" path="*.html" type="URLRewriter.RewriterFactoryHandler, URLRewriter" /> 就可以实现了呢?
#20楼 [
楼主]2008-05-29 09:17 |
@superman.net
这就不太清楚了,我在测试的时候是如果不配置IIS,那么是无法实现的,至于你为什么能实现,估计是你以前添加过.html的扩展吧。
楼主,我按你的步骤做下来好象和13楼是一样的问题。请问13楼错在哪点
#22楼 [
楼主]2008-06-03 17:18 |
@webprogram
你把你做的发到我邮箱吧,我帮你看看
dataset@live.cn
--引用--------------------------------------------------
rakor: 添加第五步以后,会造成访问真正的html文件出现文件不存在的错误
--------------------------------------------------------
同意16楼的说法,访问真正的html文件出现文件不存在的错误,怎么解决处理。
热心的博主:请问我的伪静态程序为什么在本机浏览不了呢?我也在IIS加了筛选器.我的程序竟然在本机上就是index.html,about.html这样的文件,打开来一看全是直接读取数据库的代码呢.
#26楼 [
楼主]2008-06-26 22:23 |
@lisha
请把你的源代码发到我的邮箱吧dataset@live.cn我帮你看看。
博主:
你好!
先谢谢你的热心帮助,谢谢,非常感谢!!!
已经给你发了邮件了.
#28楼 [
楼主]2008-06-28 10:19 |
@lisha
我收到了您的邮件,但是您给我的mofile地址我无法下载。
博主:
先谢过你的热心帮助.
我又给你发了邮件,上次不好意思,自己没有测试一下能不能下就发给你了.
这次我测试好了,地址在邮件里发了,要登录可以下,我把下载的用户密码也写在邮件里了.
#30楼 [
楼主]2008-06-30 12:33 |
@lisha
您好,我收到了您的邮件了,我打开里面全是*.html结尾的和*.asp的文件,请问是这个吗?如果您想静态化这样的站点,那不用修改web.config,只需要改IIS的httpd.ini文件里加规则就可以了。
谢谢博主!!!
是的,就是那些.html的文件,其实除了product.html其它的全是asp的文件,包括首页也是.html的样子,是我改成.asp的.
我在本机浏览不了,改IIS的httpd.ini文件里加规则就可以在本机浏览吗?可是我不太懂怎么改,博主能给我一个详细一点的方法吗?谢谢了
#32楼 [
楼主]2008-07-02 19:35 |
#33楼 [
楼主]2008-07-02 19:39 |
@lisha
还有一点,我这里所说的静态是利用的web.config里的规则,来进行URL地址的重写,并不是真正利用静态模板技术来实现的重写,所以,在源文件中是不会出现*.html的文件的。
#35楼 [
楼主]2008-07-11 12:15 |
博主,你好,我看了你的这方法,我跟着做了一到四步, <RewriterRule>
<LookFor>~/web/index.html</LookFor>
<SendTo>~/web/index.aspx</SendTo>
</RewriterRule>
</Rules>
</RewriterConfig>这样我访问成功了,我现在要 <RewriterRule>
<LookFor>~/web/new/type/(.[0-9]*)\.html</LookFor>
<SendTo>~/web/new.aspx?id=$1</SendTo>
</RewriterRule>
这一部分不成功,
别第五步,非得配置吗?谢谢
#37楼 [
楼主]2008-07-16 23:11 |
@lwf
是的,第五步非常关键的,必须配置,如果您的机器以前配置过,当然可以不用配置了,其实就是加一个*.html的解析。
博主,你好, 谢谢你的耐心解答,我配置好了 第五步也通过了,我现在有个疑问,如我的“default.aspx”里面列表的链接全是"test.aspx?id=1,test.aspx?id=2",这个test.aspx,我映射到了1.html,2.html,我想问的是,我在给default.aspx中的列表加链接的时候是<a href ="<%#Eval("id") %>.html"><%#Eval("id") %></a>,还是和以前一样的写成:<a href ="test.aspx?id=<%#Eval("id") %>"><%#Eval("id") %></a>,
谢谢
#39楼 [
楼主]2008-07-17 19:59 |
@lwf
我没有看到您的源代码,但是按照我的理解的意思是,您想让您的链接表现为X.html这样对吗?如果是这样的话,只需要写<a href ="<%#Eval("id") %>.html"><%#Eval("id") %></a>这样就可以了。如果还有问题,欢迎继续留言。
看到你这篇受益匪浅呢~ 崇拜ing... 服务器已经调试成功了,所有调用的页面都没有问题,但是到用户中心的登录功能时发现了一个小小问题,用ASP.NET获取到的地址不正确,无论Request.Url、Request.ServerVariables("SCRIPT_NAME")得到的都是原本的.aspx页面地址,而且还不带任何参数……不知高人有否方法获取到伪静态的地址啊?
@圣天雷
你试试request.querystring["string"].tostring();没有呢?
@42楼
我要的是地址栏里的伪静态地址啊……
另外,今天又遇到一个问题,web.config里好像不能写&号?我想通过伪静态传两个参数,结果xxx.aspx?key1=$1&key2=$2这一行无法通过语法验证,导致web.config失效,网站不能运行。
楼主:
在虚拟空间里不用配置IIS可以实现url重写吗
不知道你把源代码预编译什么意思,代码看不见还叫人去下你到 代码,连接数据库的语句都不知道你在那写的,还要什么连接语句,日
#46楼 [
楼主]2008-08-27 23:40 |
@XXXX
您好,首先,我放在这里的StaticWeb.rar里面没有任何连接数据库的代码,其次,这个文件编译与否并不影响您的代码阅读,就只需要导入一个DLL到Bin目录下,并且全部的转发规则都写在了web.config里面,没有任何地方是隐藏或者故意隐瞒了关键代码的,那样的话,我发上来还有什么意思呢?
#47楼 [
楼主]2008-08-27 23:42 |
@XXXX
其次,我在文中提到的选择[下载本文的源代码],是指下载Mircosoft URLRewriter.dll文件,不是下载本文的实例代码,本文的实例代码下载地址为文章最后的地址,当然,如果您也可以直接下载StaticWeb.rar,因为里面已经包含了Mircosoft URLRewriter.dl,请您看清下载地址。
#48楼 [
楼主]
2008-08-27 23:43 |
@yushangbo
您好,最近比较忙,很少来,关于虚拟主机里的不设置IIS的问题,其实就是加一个.html的扩展,一般来说,在虚拟主机提供商都回为您添加了的,如果没添加请他们添加一下就可以了,欢迎交流:)