<?xml version="1.0" encoding="UTF-8"?>
<configuration>
<configSections>
    <section name="RewriterConfig" type="URLRewriter.Config.RewriterConfigSerializerSectionHandler, URLRewriter" />
</configSections>
<appSettings>
<add key="ConnectionString" value="server=PC;database=cn;uid=sa;pwd=sa" />
</appSettings>
<connectionStrings />
<system.web>
<!--<sessionState mode="InProc"  />-->
    <httpRuntime requestValidationMode="2.0" />
<sessionState mode="InProc" cookieless="false" timeout="99999" />
<globalization requestEncoding="gb2312" responseEncoding="gb2312" />
<!-- 
            设置 compilation debug="true" 可将调试符号插入
            已编译的页面中。但由于这会 
            影响性能,因此只在开发过程中将此值 
            设置为 true。
        -->
<compilation debug="true" defaultLanguage="c#" targetFramework="4.0">
</compilation>
<!--
            通过 <authentication> 节可以配置 ASP.NET 用来 
            识别进入用户的
            安全身份验证模式。 
        -->
<authentication mode="Windows" />
<!--
            如果在执行请求的过程中出现未处理的错误,
            则通过 <customErrors> 节可以配置相应的处理步骤。具体说来,
            开发人员通过该节可以配置
            要显示的 html 错误页
            以代替错误堆栈跟踪。        
        -->
<customErrors mode="Off" defaultRedirect="GenericErrorPage.htm">
<error statusCode="403" redirect="NoAccess.htm" />
<error statusCode="404" redirect="FileNotFound.htm" />
</customErrors>
<pages validateRequest="false" enableSessionState="true" enableViewState="true" controlRenderingCompatibilityVersion="4.0" clientIDMode="AutoID">
<controls> </controls>
</pages>
<httpHandlers>
      <add verb="*" path="*.html" type="URLRewriter.RewriterFactoryHandler, URLRewriter" />
      <add verb="*" path="*" type="URLRewriter.RewriterFactoryHandler, URLRewriter" />
</httpHandlers>
<httpModules>
      <!--<add name="Session" type="System.Web.SessionState.SessionStateModule"/>-->
</httpModules>
</system.web>
  <RewriterConfig>
    <Rules>
      <RewriterRule>
        <LookFor>~/list(\d+)</LookFor>
        <SendTo>~/Detail.aspx?id=$1</SendTo>
      </RewriterRule>
      <RewriterRule>
        <LookFor>~/toutiao</LookFor>
        <SendTo>~/list.aspx?t=21</SendTo>
      </RewriterRule>
      <RewriterRule>
        <LookFor>~/toutiao/p(\d+).html</LookFor>
        <SendTo>~/list.aspx?t=21&amp;page=$1</SendTo>
      </RewriterRule>
    </Rules>
  </RewriterConfig>
</configuration>
不加.html可以访问,一加.html就找不到页面了?
这是怎么会事

解决方案 »

  1.   

    ~/toutiao/p(\d+).html  你这个路径,是不是正则把你的“.html” 的“.”当成正则表达式的一部分了?
    试试用\来把.转义
    ~/toutiao/p(\d+)\.html
      

  2.   

    楼主什么意思啊?URL="xxx"时能访问,URL="xxx.html"时不能访问了吗?
      

  3.   

    第一次做url重写
    是我其它地方设置不对吗?
      

  4.   

    htm,html默认不会走到.NET的ISAPI的扩展上来。你需要在IIS中手动修改此配置才能将.HTM,.HTML的请求转到你的应用中来。
      

  5.   

    刚才我发,是不是.html的.被当作正则了。。用转义符转一下。。
    ~/toutiao/p(\d+)\.html  试试看。。发完就没了。。
      

  6.   

    搞定了。原来是IIS配置的路径不对。我的是64位的