读书人

url重写为啥加了.html就找不到页面了

发布时间: 2012-08-14 10:39:58 作者: rapoo

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&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"时不能访问了吗?
[解决办法]



没有添加映射吧。。。

[解决办法]
htm,html默认不会走到.NET的ISAPI的扩展上来。你需要在IIS中手动修改此配置才能将.HTM,.HTML的请求转到你的应用中来。
[解决办法]
我回复的3楼怎么不见了~~5555。。。。


你这个是调试的时候不好使,还是发布的时候不好使?
[解决办法]
刚才我发,是不是.html的.被当作正则了。。用转义符转一下。。
~/toutiao/p(\d+)\.html 试试看。。

发完就没了。。

读书人网 >asp.net

热点推荐