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.aspx
vous 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
- 404 la Redirection pour les non aspx pages - les réponses étaient incomplètes ou ne fonctionne pas.
- 404 ne pas ajouter aspxerrorpath non des pages aspx - mais c'était un peu différent de ce que je veux.
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
Vous devez vous connecter pour publier un commentaire.
Vous avez besoin pour configurer le
<httpErrors>
élément. Cela permet de configurer les pages d'erreur pour les fichiers statiques et des pages du serveur.Votre 3ème tentative de "le web.config (3)" et "Edition 1" sont presque. Le problème est que vous ne pouvez pas utiliser l'application de chemins relatifs ici (ex: "~/404.html"), ils doivent être parent de la racine du site (ex: "/404.html").
Les paramètres dans l'exemple customErrors cause de section non gérées HTTP 404 (fichier non trouvé) des erreurs pour être redirigé vers le Http404ErrorPage.fichier aspx. Ces erreurs HTTP 404 pourraient survenir si une demande n'avait été faite pour une .fichier aspx, .asmx fichier, et ainsi de suite et si le fichier demandé n'existe pas. Toutes les autres erreurs non gérées dans ASP.NET les fichiers sont dirigés vers le DefaultRedirectErrorPage.fichier aspx.
NoteNote:
Dans l'exemple, l'attribut de mode est réglé Sur "on", de sorte que vous pouvez les messages d'erreur lorsque vous exécutez l'exemple de Visual Studio. Dans un environnement de production, ce paramètre devrait normalement être "RemoteOnly". ASP.NET rend les pages d'erreur pour les utilisateurs externes. Si une demande est faite sur l'ordinateur serveur (localhost), ASP.NET rend une page avec des informations détaillées sur l'erreur.