web.config ne pas rediriger vers la page d'erreur 404 sur les pages non .aspx

Objectif

Je veux toutes les Url des pages manquantes à l'avant de ma page 404 qui est dans ma racine que 404error.aspx

Problème

Jusqu'à présent, seules les Url qui ont un .aspx fonctionne. Par exemple, si vous entrez 4error.aspxvous serez redirigé vers la page d'erreur.

/404error.aspx?aspxerrorpath=/4error.aspx

Fond

Je ne suis pas un .NET développeur, donc j'ai juste pris ce projet qui utilise le classique .aspx. Donc, je ne suis pas à l'aide de n'importe quel produit Microsoft pour construire tout cela dans des modèles ou des cadres. Je suis juste de codage dans Sublime text.

Ce que j'ai déjà fait des recherches

J'ai vue de nombreux articles que j'ai trouvé sur Google, mais rien n'a un exemple complet que effectivement travaillées.

Code

C'est tout le code que j'ai commencé avec mon web.config

web.config

<configuration>
  <system.web>
    <customErrors mode="RemoteOnly" defaultRedirect="~/404error.aspx" />
      <globalization
        fileEncoding="utf-8"
        requestEncoding="utf-8"
        responseEncoding="utf-8"
        culture="en-US"
        uiCulture="de-DE"
      />
  </system.web>
</configuration>

J'ai aussi trouvé cet exemple de Microsoft (404error.aspx était ma modification)
http://msdn.microsoft.com/en-us/library/vstudio/bb397417%28v=vs.100%29.aspx

web.config (2)

<configuration>
  <appSettings/>
  <connectionStrings/>
  <system.web>
    <compilation debug="true" />

    <!-- Turn on Custom Errors -->
    <customErrors mode="On" 
      defaultRedirect="/404error.aspx">
      <error statusCode="404" redirect="/404Error.aspx"/>
    </customErrors>

  </system.web>
</configuration>

Qui aussi n'a pas à gérer des pages qui n'ont pas la .aspx

Ensuite, j'ai essayé cet exemple de

web.config (3)

<?xml version="1.0"?>
<configuration>
   <system.web>
    <customErrors mode="RemoteOnly" defaultRedirect="~/404error.aspx" />
    <error statusCode="404" redirect="~/404error.aspx" />
    <globalization
      fileEncoding="utf-8"
      requestEncoding="utf-8"
      responseEncoding="utf-8"
      culture="en-US"
      uiCulture="de-DE"
    />
   </system.web>
   <system.webServer>
      <httpErrors>
        <remove statusCode="401" subStatusCode="-1" />
        <remove statusCode="403" subStatusCode="-1" />      
        <remove statusCode="404" subStatusCode="-1" />                
        <remove statusCode="500" subStatusCode="-1" />
          <!-- full url when responsemode is Redirect -->
        <error statusCode="401" path="http://foo.com/default.htm" responseMode="Redirect" />
          <!-- local relative path when responsemode is ExecuteURL -->
        <error statusCode="403" path="~/404error.aspx" responseMode="ExecuteURL" />
        <error statusCode="404" path="~/404error.aspx" responseMode="ExecuteURL" />                
        <error statusCode="500" path="~/404error.aspx" responseMode="ExecuteURL" />
      </httpErrors>
      <modules runAllManagedModulesForAllRequests="true"/>
   </system.webServer>
</configuration>

Évidemment, je dois changer les chemins d'accès pour d'autres-que-404 pages, mais je voulais juste tester pour ces erreurs. Ce dernier web.config fonctionne encore pire.

Pouvez-vous s'il vous plaît dites-moi ce que je dois modifier. J'aimerais avoir une pleine <configuration> parce que je reçois confondu ce qui va où.

EDIT 1

J'avais lu que beaucoup de développeurs ont été suggérant juste le faire une page HTML. Alors maintenant, ma page est 404.html Voici ma mise à jour web.config

<configuration>
  <system.web>
    <customErrors mode="On"
              redirectMode="ResponseRewrite">
        <error statusCode="404"
           redirect="~/404.html"/>
      </customErrors>
      <globalization
        fileEncoding="utf-8"
        requestEncoding="utf-8"
        responseEncoding="utf-8"
        culture="en-US"
        uiCulture="de-DE"
      />
  </system.web>

  <system.webServer>
    <httpErrors errorMode="Custom"
            defaultResponseMode="File">
      <remove statusCode="404"/>
      <error statusCode="404"
          path="~/404.html"/>
    </httpErrors>
  </system.webServer>
</configuration>

source d'informationauteur JGallardo