2014-01-03 5 views
1

Я пытаюсь перенаправить страницу 404 из веб-конфигурации, когда пользователи запрашивают несуществующую страницу. This - это мой веб-конфигуратор.404 страница не работает

Когда я пытаюсь, перенаправление не работает, и я получаю страницу 404 по умолчанию IIS. Я пробовал это на своем локальном IIS Express.

И this - это мой список страниц. Страница 404 расположена на корне.

Как это сделать?

+1

Скопируйте/вставьте свой web.config здесь и не покажите его на изображении. Не помогает просмотр изображений, также изображение может не существовать через несколько дней и даже не может помочь сканерам индексировать эту страницу. – Aristos

+0

Чтобы выполнить эту работу, вы должны попытаться вызвать страницу asp.net, поэтому перейдите из asp.net и следуйте указаниям, которые вы предоставили ему в качестве инструкции на web.config. Вы пытаетесь это сделать? или вы даете страницы, которые не переходят из asp.net? См. Это: http://stackoverflow.com/questions/11045733/404-redirecting-for-non-aspx-pages – Aristos

+0

Я пробовал код, который вы отправили, но не работали. Я добавил этот код в веб-конфигурацию, но теперь сайт переходит на совершенно пустую страницу. 404 работает, если запрос url с расширением .aspx. Код, который я добавил в webconfig, - это

ответ

0

IIS не очень хорошо. (Заявка на отказ от ответственности)

Для того, чтобы IIS осознал, что вы знаете, что вы делаете, и на самом деле отображает свою пользовательскую страницу 404, сама страница должна быть над определенным размером в байтах (512 bytes, если быть точным), в противном случае IIS предполагает это лучше знает и отображает значение по умолчанию 404.

Попробуйте добавить прокомментированные строки внизу страницы 404, чтобы немного «раздуть» его. Звучит безумно, я знаю, но это работает.

EDIT: 512 bytes Я считаю, что это минимальный размер страницы, в противном случае IIS пропускает его. Я уверен, что кто-то из M $ подумал, что это хорошая идея.

+0

Спасибо, я попробую и скажу результат. –

0

Код ошибки 404, перенаправленный на «~/404.aspx», должен сделать трюк.

Если он все еще не работает, пожалуйста, попробуйте следующее:

<httpErrors errorMode="Custom" existingResponse="Replace"> 
    <remove statusCode="404" subStatusCode="-1" /> 
    <error statusCode="404" path="~/404.aspx" responseMode="ExecuteURL" /> 
</httpErrors> 

Поместите код выше внутри тега system.webServer в web.config.

IIS Express использует system.webserver, потому что он основан на базе кода IIS7: http://weblogs.asp.net/scottgu/archive/2010/06/28/introducing-iis-express.aspx.

Пожалуйста, дайте мне знать, если это сработает.

С уважением.

+0

Спасибо за ваш ответ, но нет, это не сработает. Я пробовал оба –

0

Глядя на вашу запись в web.config, я скептически отношусь к тому, может ли ваша страница ошибки 404.aspx быть причиной того, что вы видите ошибку 404. Вероятно, удаление/из redirect = "/ 404.aspx" могло бы сделать трюк. Проанализируйте свой запрос с помощью некоторого инструмента.

0
<?xml version="1.0" encoding="utf-8"?> 
<!-- 
    For more information on how to configure your ASP.NET application, please visit 
    http://go.microsoft.com/fwlink/?LinkId=169433 
    --> 
<configuration> 

    <configSections> 
    <!-- For more information on Entity Framework configuration, visit http://go.microsoft.com/fwlink/?LinkID=237468 --> 
    <section name="entityFramework" type="System.Data.Entity.Internal.ConfigFile.EntityFrameworkSection, EntityFramework, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" requirePermission="false" /> 
    </configSections> 
    <location path="index.aspx"> 
    <system.webServer> 
     <httpRedirect enabled="true" destination="~/Admin/Login.aspx" exactDestination="true" httpResponseStatus="Found" /> 
     <modules runAllManagedModulesForAllRequests="true"></modules> 
    </system.webServer> 
    </location> 
    <location path="images"> 
    <system.web> 
     <authorization> 
     <allow users="*" /> 
     </authorization> 
    </system.web> 
    </location> 
    <location path="js"> 
    <system.web> 
     <authorization> 
     <allow users="*" /> 
     </authorization> 
    </system.web> 
    </location> 
    <location path="Resimler"> 
    <system.web> 
     <authorization> 
     <allow users="*" /> 
     </authorization> 
    </system.web> 
    </location> 
    <location path="Script"> 
    <system.web> 
     <authorization> 
     <allow users="*" /> 
     </authorization> 
    </system.web> 
    </location> 
    <location path="Scripts"> 
    <system.web> 
     <authorization> 
     <allow users="*" /> 
     </authorization> 
    </system.web> 
    </location> 
    <system.web> 
    <customErrors mode="On" defaultRedirect="~/Hata.aspx"> 
     <error statusCode="404" redirect="~/404.aspx"/> 
    </customErrors> 
    <pages validateRequest="false"> 
     <controls> 
     <add tagPrefix="CKEditor" assembly="CKEditor.NET" namespace="CKEditor.NET"/> 
     </controls> 
    </pages> 
    <compilation debug="true" targetFramework="4.5"> 
     <assemblies> 
     <add assembly="System.Data.Entity, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" /> 
     </assemblies> 
    </compilation> 
    <authentication mode="Forms"> 
     <forms name=".ASPXAUTH" loginUrl="Admin/Login.aspx" defaultUrl="Default.aspx" protection="All" timeout="30" path="/" requireSSL="false" slidingExpiration="true" cookieless="UseDeviceProfile" enableCrossAppRedirects="false" ticketCompatibilityMode="Framework20"> 
     <credentials passwordFormat="SHA1"> 
      <user name="admin" password="7dc959a7d6440baa02e0bb84b1dffeb173facf5a" /> 
     </credentials> 
     </forms> 
     <passport redirectUrl="internal" /> 
    </authentication> 
    <httpRuntime targetFramework="4.5" requestValidationMode="2.0" executionTimeout="1200" maxRequestLength="51200" /> 
    </system.web> 
    <connectionStrings> 
    <add name="InsaatEntities" connectionString="metadata=res://*/ModelInsaat.csdl|res://*/ModelInsaat.ssdl|res://*/ModelInsaat.msl;provider=System.Data.SqlClient;provider connection string=&quot;data source=mssql03.natro.com;initial catalog=DB120807190835;persist security info=True;user id=USR120807190835;password=PSS!H3Z7F1%;MultipleActiveResultSets=True;App=EntityFramework&quot;" providerName="System.Data.EntityClient" /> 
    <add name="ModelInsaatEntitiy" connectionString="metadata=res://*/ModelInsaat.csdl|res://*/ModelInsaat.ssdl|res://*/ModelInsaat.msl;provider=System.Data.SqlClient;provider connection string=&quot;data source=mssql03.natro.com;initial catalog=DB120807190835;persist security info=True;user id=USR120807190835;password=PSS!H3Z7F1%;multipleactiveresultsets=True;application name=EntityFramework&quot;" providerName="System.Data.EntityClient" /> 
    <add name="DB120807190835Entities" connectionString="metadata=res://*/ModelInsaat.csdl|res://*/ModelInsaat.ssdl|res://*/ModelInsaat.msl;provider=System.Data.SqlClient;provider connection string=&quot;data source=mssql03.natro.com;initial catalog=DB120807190835;persist security info=True;user id=USR120807190835;password=PSS!H3Z7F1%;multipleactiveresultsets=True;application name=EntityFramework&quot;" providerName="System.Data.EntityClient" /> 
    <add name="ModelInsaatEntities" connectionString="metadata=res://*/ModelInsaat.csdl|res://*/ModelInsaat.ssdl|res://*/ModelInsaat.msl;provider=System.Data.SqlClient;provider connection string=&quot;data source=mssql03.natro.com;initial catalog=DB120807190835;persist security info=True;user id=USR120807190835;password=PSS!H3Z7F1%;MultipleActiveResultSets=True;App=EntityFramework&quot;" providerName="System.Data.EntityClient" /> 
    </connectionStrings> 
    <entityFramework> 
    <defaultConnectionFactory type="System.Data.Entity.Infrastructure.LocalDbConnectionFactory, EntityFramework"> 
     <parameters> 
     <parameter value="v11.0" /> 
     </parameters> 
    </defaultConnectionFactory> 
    </entityFramework> 
    <appSettings> 
    <add key="ValidationSettings:UnobtrusiveValidationMode" value="None" /> 
    </appSettings> 

</configuration> 

Это мой веб-конфигурации .Когда я просить nonexist.aspx он перенаправляет страницу 404.aspx правильно, но когда я прошу MYDOMAIN/nonexists без .aspx расширения перенаправляет по умолчанию IIS 404 page.My страницы размер превышает 512 байт

Смежные вопросы