日期:2014-05-17  浏览次数:20430 次

问个伪静态服务器设置问题
Rewrite.dll 和 aspnet_isapi.dll到底是怎么回事没弄懂

因为我在应用程序配置里添加的aspnet_isapi.dll伪静态可以正常运行了。

但是到空间上需要添加ISAPI筛选器

百度下了

要用Rewrite.dll  

然后添加了 也不好用


到底该怎么弄呢

------解决方案--------------------


1。网站引用两个DLL URLRewriter.dll(重写用的DLL,地球人都知道了)和ActionlessForm.dll(处理回发的DLL,具体下面会说到)

URLRewriter.dll下载地址:http://hi.csdn.net/link.php?url=http://community.csdn.net%2F

ActionlessForm.dll下载地址:http://hi.csdn.net/link.php?url=http://community.csdn.net%2F

2.配置IIS

你的网站--属性--主目录--配置--插入--C:\WINDOWS\Microsoft.NET\Framework\v2.0.50727\aspnet_isapi.dll 将文件是否存在勾掉

具体其它配置根据自己的需求而定!

3.web.config的配置,如下:

<configuration>节点下:

<configSections>
<section name="RewriterConfig" type="URLRewriter.Config.RewriterConfigSerializerSectionHandler, URLRewriter"/>
</configSections>
<RewriterConfig>
<Rules>
<!-- 新闻 -->
<RewriterRule>
<LookFor>~/([0-9]*)</LookFor>
<SendTo><![CDATA[~/.aspx?txt=$1]]></SendTo>
</RewriterRule>
<RewriterRule>
<LookFor>~/[0-9]*)/</LookFor>
<SendTo><![CDATA[~/Page.aspx?txt=$1]]></SendTo>
</RewriterRule>
</Rules>
</RewriterConfig>

<system.web>节点下:

<httpModules>
<add type="URLRewriter.ModuleRewriter, URLRewriter" name="ModuleRewriter"/>
</httpModules>


经以上三步,目的基本达到,可以在在浏览器里输入www.url.com/123/或www.url.com/123查看了~!


但是,如果你在重写后的页面里放一个button或别的什么控件,在单击button时,页 面的地址会变回原来的样子,这对用户来说可不是什么好事儿。所以要解决这个问题,就要有到上面我说所的ActionlessForm.dll(处理回发的 DLL)了!方法简单的很,如下

1.引入ActionlessForm.dll

2.在重后的页面的第二行写如下代码:

<%@ Register TagPrefix="skm" Namespace="ActionlessForm" Assembly="ActionlessForm" %>

3.将页面中的<form runat="server"></form>替换成:<skm:form id="form1" runat="server"></skm:form>


好了,这样一来就哦了,没什么难度,只要知道方法!

还有就是重写后css,js等带有路径的东东会失效,只要改成绝对路径就可以了~!

------解决方案--------------------
楼主看下应该就能明白了。