【问题标题】:Custom error page for extension less urls扩展少网址的自定义错误页面
【发布时间】:2013-07-10 08:13:13
【问题描述】:

我有一个 DotNetNuke 7 网站,并且我启用了如下自定义错误:

    <customErrors mode="On" defaultRedirect="Error.aspx">
        <error statusCode="404" redirect="FileNotFound.aspx" />
    </customErrors>

我还想为没有扩展名的 URL 添加此类错误,但是当我尝试添加通配符映射时,它会在 http://mysite.com 等上用 404 破坏站点

<add name="WILDCARDMAPPING" path="*" verb="*" type="" modules="IsapiModule" scriptProcessor="%windir%\Microsoft.NET\Framework64\v4.0.30319\aspnet_isapi.dll" resourceType="Unspecified" requireAccess="None" allowPathInfo="false" preCondition="integratedMode,bitness64" />

如何设置处理程序..

<handlers accessPolicy="Read, Execute, Script">
        <remove name="WebServiceHandlerFactory-Integrated" />
        <add name="LogoffHandler*" path="Logoff.aspx" verb="*" type="DotNetNuke.Services.Authentication.LogOffHandler, DotNetNuke" preCondition="integratedMode" />
        <add name="RSSHandler" path="RSS.aspx" verb="*" type="DotNetNuke.Services.Syndication.RssHandler, DotNetNuke" preCondition="integratedMode" />
        <add name="LinkClickHandler" path="LinkClick.aspx" verb="*" type="DotNetNuke.Services.FileSystem.FileServerHandler, DotNetNuke" preCondition="integratedMode" />
        <add name="CaptchaHandler" path="*.captcha.aspx" verb="*" type="DotNetNuke.UI.WebControls.CaptchaHandler, DotNetNuke" preCondition="integratedMode" />
        <add name="UserProfilePageHandler" path="User.aspx" verb="*" type="DotNetNuke.Services.UserProfile.UserProfilePageHandler, DotNetNuke" preCondition="integratedMode" />
        <add name="RadProgressHandler" verb="*" path="Telerik.RadUploadProgressHandler.ashx" type="Telerik.Web.UI.Upload.RadUploadProgressHandler, Telerik.Web.UI" preCondition="integratedMode" />
        <add name="UserProfilePicHandler" path="ProfilePic.ashx" verb="*" type="DotNetNuke.Services.UserProfile.UserProfilePicHandler, DotNetNuke" preCondition="integratedMode" />
        <remove name="ExtensionlessUrl-Integrated-4.0" />
        <add name="ExtensionlessUrl-Integrated-4.0" path="*." verb="GET,HEAD,POST,DEBUG,PUT,DELETE" type="System.Web.Handlers.TransferRequestHandler" preCondition="integratedMode,runtimeVersionv4.0" />
        <add name="SitemapHandler" path="Sitemap.aspx" verb="*" type="DotNetNuke.Services.Sitemap.SitemapHandler, DotNetNuke" preCondition="integratedMode" />
        <add name="ClientDependencyHandler" verb="*" path="DependencyHandler.axd" type="ClientDependency.Core.CompositeFiles.CompositeDependencyHandler, ClientDependency.Core" preCondition="integratedMode" />
        <add name="Telerik.Web.UI.WebResource" verb="*" path="Telerik.Web.UI.WebResource.axd" type="Telerik.Web.UI.WebResource, Telerik.Web.UI" preCondition="integratedMode" />
        <add name="Telerik.Web.UI.ChartHttpHandler" verb="*" path="ChartImage.axd" type="Telerik.Web.UI.ChartHttpHandler, Telerik.Web.UI, Culture=neutral, PublicKeyToken=121fae78165ba3d4" />
        <add name="HtmTemplateFileHandler" verb="*" path="*.htmtemplate" type="DotNetNuke.Providers.RadEditorProvider.HtmTemplateFileHandler, DotNetNuke.RadEditorProvider" preCondition="integratedMode" />
        <add name="WILDCARDMAPPING" path="*" verb="*" type="" modules="IsapiModule" scriptProcessor="%windir%\Microsoft.NET\Framework64\v4.0.30319\aspnet_isapi.dll" resourceType="Unspecified" requireAccess="None" allowPathInfo="false" preCondition="integratedMode,bitness64" />
    </handlers>

我已经尝试将我添加到顶部中间的 WILDCARDMAPPING 处理程序制作成电影,但它不起作用。

当有一个页面已添加到 CMS(如 /Home)但显示 /somepage 的正常 404 错误消息时,DNN 已经提供了对无扩展 URL 的支持。

【问题讨论】:

    标签: asp.net dotnetnuke custom-error-pages wildcard-mapping


    【解决方案1】:

    只需在每个目录中添加一个 index.html,它会显示您希望针对该案例显示的内容 - 默认情况下打开 http://SomeUrl/some/path/ 始终打开/尝试打开 http://SomeUrl/some/path/index.html

    【讨论】:

    • 这不是我想要的.. 我想在发生 404 时显示自定义错误页面.. 所以 /someurlwithoutextenstion 应该重定向到 /Error.aspx
    【解决方案2】:

    这行得通:

      <system.webServer>
        <httpErrors>
          <remove statusCode="404" subStatusCode="-1" />
          <error statusCode="404" path="/FileNotFound.aspx" responseMode="ExecuteURL" />
        </httpErrors>
      </system.webServer>
    

    【讨论】:

      【解决方案3】:

      DNN 7.1 包含新的“高级 URL 提供程序”(基于 iFinity 的 URL Master 扩展),其中包括对 404 页面和无扩展 URL 的内置支持。在新的 DNN 7.1 站点中有一个名为“404 错误页面”的页面(您必须在升级的站点中手动创建它,请参阅http://www.dnnsoftware.com/answers/cid/350985 接受的答案),对于未找到的页面将返回该页面(是否有扩展名)。

      相关:

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2012-09-10
        • 1970-01-01
        • 2017-04-04
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多