在网上搜索一些东西时,突然看到可以直接配置服务器,然后配置一下 Web.config 文件就可以实现
伪静态,于是就试着去实现。用了半天的时间,我终于配置成功了,在这里分享给大家。
很多文章上面说要下载微软的 MSDNURLRewriting.msi 软件,或者是 Url Rewrite2.exe 软件。我下载下来配置了一下,都没有成功。
我的配置方法如下:
1.打开IIS服务器
2.切换到处理程序映射界面
3."添加通配符脚本映射":请求路径 * ,可执行文件为:
C:\Windows\Microsoft.NET\Framework\v2.0.50727\aspnet_isapi.dll
,名称随意。如果是4.0框架用下面这个:
C:\Windows\Microsoft.NET\Framework\v4.0.30319\aspnet_isapi.dll
这里很重要,所以我用了红色字体。
4.将集成模式改为经典模式
【以下两个步骤 一般可以省略】
5.右边"添加脚本映射":请求路径 .html ,可执行文件选择
C:\Windows\Microsoft.NET\Framework\v2.0.50727\aspnet_isapi.dll ,如果是4.0,则为
C:\Windows\Microsoft.NET\Framework\v4.0.30319\aspnet_isapi.dll,名称随意;
(注意:如果你的系统是32位的。请选择 Framework,如果64位,请选Framework64。这个关键到后面的伪静态问题,慎重!!)
6."添加托管处理程序":请求路径 * ,可执行文件:System.Web.UI.PageHandlerFactory,名称随意;
打开站点切换到功能试图,找到 "IIS(服务器组件)"->"模块",双击之后,在打开窗口右侧的操作栏目中,
点击"添加托管模块",名称随意,类型URLRewriter.ModuleRewriter,并且把"仅针对向asp.net 应用程序或
托管处理程序发出请求调用" 选中
7.配置Web.config文件
<?xml version="1.0" encoding="utf-8"?>
<configuration>
<!--必要参数-->
<configSections>
<section name="RewriterConfig" type="URLRewriter.Config.RewriterConfigSerializerSectionHandler, URLRewriter" />
</configSections>
<!--必要参数-->
<RewriterConfig>
<Rules>
<!--<RewriterRule>
<LookFor>~/web/new/type/(.[0-9]*)\.html</LookFor>
<SendTo>~/web/new.aspx?id=$1</SendTo>
</RewriterRule>-->
<RewriterRule>
<!--URL里面要写的-->
<LookFor>~/Default/(.[0-9]*)/.html</LookFor>
<!--要到的实际动态页面-->
<SendTo>~/Default.aspx?id=$1</SendTo>
</RewriterRule>
</Rules>
</RewriterConfig>
<system.web>
<!--必要参数-->
<httpHandlers>
<add verb="*" path="*.aspx" type="URLRewriter.RewriterFactoryHandler, URLRewriter" />
<add verb="*" path="*.html" type="URLRewriter.RewriterFactoryHandler, URLRewriter" />
</httpHandlers>
<compilation debug="true" targetFramework="4.0">
<!--为了使真正的html页面也能正常使用-->
<buildProviders>
<add extension=".html" type="System.Web.Compilation.PageBuildProvider" />
</buildProviders>
</compilation>
</system.web>
<system.webServer>
<validation validateIntegratedModeConfiguration="false" />
<!--禁止验证集成模式-->
</system.webServer>
</configuration>
接下来访问Default/1/.html
好了,这就配置完成了。