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

url重写为什么加了.html就找不到页面了
C# code

<?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就找不到页面了?
这是怎么会事

------解决方案--------------------
是htm还是html
------解决方案--------------------
~/toutiao/p(\d+).html 你这个路径,是不是正则把你的“.html” 的“.”当成正则表达式的一部分了?
试试用\来把.转义。。。
~/toutiao/p(\d+)\.html
------解决方案--------------------
楼主什么意思啊?URL="xxx"时能访问,URL="xxx.html"时不能访问了吗?
------解决方案--------------------