IIS7.0-7.5配置2.0的网站伪静态,配置了伪静态无效的可参考

服务器环境准备:

1、下载URLRewriter组件组件:
官方下载地址:http://download.microsoft.com/download/0/4/6/0463611e-a3f9-490d-a08c-877a83b797cf/MSDNURLRewriting.msi

2、在网站项目中添加URLRewriter程序集的引用。

生成URLRewriter.dll,其他网站下的大部分都是8kb,自己生成的是20kb,20kb的才是官网正版。

 

配置webconfig文件:
1、在<configuration>与</configSections>节点中间加入如下配置:
<section name=”RewriterConfig” type=”URLRewriter.Config.RewriterConfigSerializerSectionHandler, URLRewriter” />

 

2、将<compilation debug="true" />替换为以下:

 <compilation debug="true" >

 <buildProviders>

 <add extension=".html" type="System.Web.Compilation.PageBuildProvider" />

 </buildProviders>

 </compilation>

 

3、在</system.web>前增加:

<httpModules>

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

    </httpModules>

<httpHandlers>

     <add verb="*" path="*.aspx" type="URLRewriter.RewriterFactoryHandler, URLRewriter" />

     <add verb="*" path="*.html" type="URLRewriter.RewriterFactoryHandler, URLRewriter" />

</httpHandlers>

 


4、配置伪静态的语法:在</configSections>后加入<RewriterConfig>
</RewriterConfig>节点。在<RewriterConfig>与</RewriterConfig>之间加入伪静态规则:
<Rules>
       <!–定义伪静态第一条规则开始–>
       <RewriterRule>
         <LookFor>~/view(.+)*.html</LookFor>
         <SendTo>~/view.aspx?id=$1</SendTo>
       </RewriterRule>

  <!–定义伪静态第一条规则结束–>
<!–定义伪静态规则 以此类推–>

</Rules>

  

 

1、新建一个网站:名称任意;选择net FrameWork版本. 应用程序池在新疆网站后会自动生成,程序池的托管管道模式先暂时设置为集成模式。等伪静态设置完成之后再将托管管道模式设置为经典模式。选中你的站点比如website ,并且切换到功能视图。双击【处理程序映射】在打开窗口右侧的操作栏目下做如下操作。

 

2、【添加脚本映射】-路径为:*.html.可执行文件为:C:\Windows\Microsoft.NET\Framework\v4.0.30319\aspnet_isapi.dll 注意:如果你的网站是2.0。可执行文件为:C:\Windows\Microsoft.NET\Framework\v2.0.50727\aspnet_isapi.dll (注意64位与32位的区别)。名称:任意比如:html-jbys

 

3、【添加通配符脚本映射】 请求路径为*。可执行文件为:C:\Windows\Microsoft.NET\Framework\v2.0.50727\aspnet_isapi.dll(注意64位与32位的区别),名称任意,比如:html-tpfjb

  

4、【托管处理程序映射】(路径:*  可执行文件:System.Web.UI.PageHandlerFactory 名称 任意 比如html-tgclcx)

 

5、【添加托管模块】双击website站点切换到站点功能视图。

然后双击模块,打开窗口之后在右侧的操作栏目下面,单击【添加托管模块】-》名称:任意 如html-tgmk  类型:URLRewriter.ModuleRewriter 并且把【仅针对向asp.net 应用程序或托管处理程序发出请求调用】前面的选项勾上。(记住一定要勾上)


6、最后一步:双击iis7.0或7.5的应用程序池。在应用程序池列表中找到【aspnet】应用程序池。双击打开之后。将aspnet应用程序池的【托管管道模式】设置为经典模式。

 

我配置完成的案例如下:(重要,如果有出现配置了规则但是没效果的,请看配置webconfig文件的第二步,我就碰到了这个问题,浪费了一天时间)

<?xml version="1.0" encoding="UTF-8"?>

<configuration>

<configSections>

  <section name="RewriterConfig" type="URLRewriter.Config.RewriterConfigSerializerSectionHandler, URLRewriter" />

</configSections>

<RewriterConfig>

<Rules>

        <RewriterRule>

         <LookFor>~/Bulletin/Bulletin_(.+)*.html</LookFor>

         <SendTo>~/NewsCenter/BulletinShow.aspx?did=$1</SendTo>

        </RewriterRule>

        <RewriterRule>

         <LookFor>~/DynamicNews/DynamicNews_(\d+)*.html</LookFor>

         <SendTo>~/NewsCenter/DynamicNewsShow.aspx?did=$1</SendTo>

        </RewriterRule>

        <RewriterRule>

         <LookFor>~/TradeInfo/TradeInfo_(\d+)*.html</LookFor>

         <SendTo>~/NewsCenter/TradeInfoShow.aspx?did=$1</SendTo>

        </RewriterRule>

</Rules>

</RewriterConfig>

  <appSettings>

    <add key="sqlconn" value="Data Source=localhost;Initial Catalog=******;User ID=******;Password=******" />

    <add key="FCKeditor:BasePath" value="~/fckeditor/" />

    <add key="FCKeditor:UserFilesPath" value="~/DownLoadImg/" />

  </appSettings>

  <connectionStrings />

  <system.web>

 <compilation debug="true" >

 <buildProviders>

 <add extension=".html" type="System.Web.Compilation.PageBuildProvider" />

 </buildProviders>

 </compilation>

    <authentication mode="Forms" />

    <customErrors mode="Off" />

<httpModules>

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

    </httpModules>

<httpHandlers>

     <add verb="*" path="*.aspx" type="URLRewriter.RewriterFactoryHandler, URLRewriter" />

     <add verb="*" path="*.html" type="URLRewriter.RewriterFactoryHandler, URLRewriter" />

</httpHandlers>

  </system.web>

  <system.webServer>

    <defaultDocument>

      <files>

        <add value="index.aspx" />

      </files>

    </defaultDocument>

    <directoryBrowse enabled="true" />

        <handlers>

   <add name="html_tgclcx" path="*" verb="*" type="System.Web.UI.PageHandlerFactory" resourceType="Unspecified" requireAccess="Script" preCondition="integratedMode" />

            <add name="html_tpfjb" path="*" verb="*" modules="IsapiModule" scriptProcessor="C:\Windows\Microsoft.NET\Framework\v2.0.50727\aspnet_isapi.dll" resourceType="Unspecified" requireAccess="None" preCondition="classicMode,runtimeVersionv2.0,bitness32" />

            <add name="html_jbys" path="*.html" verb="*" modules="IsapiModule" scriptProcessor="C:\Windows\Microsoft.NET\Framework\v2.0.50727\aspnet_isapi.dll" resourceType="Unspecified" requireAccess="Script" preCondition="classicMode,runtimeVersionv2.0,bitness32" />

        </handlers>

        <modules>

            <add name="html_tgmk" type="URLRewriter.ModuleRewriter" preCondition="managedHandler" />

        </modules>

  </system.webServer>

 

</configuration>

你可能感兴趣的:(IIS)