Mikä on 404-virhe? HTTP 404 -virhe tarkoittaa, että verkkosivu, johon linkki osoittaa, ei ole olemassa, eli alkuperäisen verkkosivun URL-osoite, on virheellinen, mikä usein tapahtuu ja on vaikeasti vältettävissä, kuten: verkkosivun URL-generointisääntöjen muutokset, verkkosivutiedoston uudelleennimeäminen tai siirtäminen, tuodun linkin kirjoitusvirhe jne., mikä johtaa alkuperäisen URL-osoitteen saavuttamattomuuteen; Kun web-palvelin vastaanottaa vastaavan pyynnön, se palauttaa selaimelle 404-tilakoodin, joka kertoo selaimelle, ettei pyydettävää resurssia ole olemassa. Kuitenkin verkkopalvelimien oletusvirhesivu 404, olipa kyseessä Apache tai IIS, on hyvin alkeellinen, tylsä ja käyttäjäystävällinen, eikä se anna käyttäjille tarvittavia tietoja lisävihjeiden saamiseksi, mikä epäilemättä aiheuttaa käyttäjien vaihtohäiriöitä. 404 sivun rooli Hakukoneet käyttävät HTTP-tilakoodeja verkkosivun tilan tunnistamiseen. Kun hakukone saa väärän linkin, sivuston tulisi palauttaa 404-tilakoodi, joka kehottaa hakukonetta lopettamaan linkin indeksoinnin. Jos tilakoodi 200 tai 302 palautetaan, hakukoneet indeksoivat linkin, jolloin syntyy suuri määrä eri linkkejä, jotka osoittavat samaan verkkosisältöön. Tämän seurauksena hakukoneet luottavat sivustoon huomattavasti vähemmän. Kuinka varmistaa, että mukautettu 404-sivu palauttaa "404"-tilakoodin Kun olet asettanut mukautetun 404-virhesivun, varmista, palautetaanko se oikein "404"-tilakoodin. Tarkistusmenetelmä on myös melko yksinkertainen: syötä verkkosivuston URL, jota ei ole sivulla, tarkista HTTP-otsikon palautus ja varmista, että se palauttaa "404"-tilakoodin. 404-sivu on oikea ratkaisu 1. Kuinka perustaa Apache-palvelimen 404-sivu Lisää koodi .htaccess-tiedostoon: ErrorDocument 404/Error.html Rakenna yksinkertainen HTML404 sivun nimeäminen Error.html Aseta Error.html verkkosivustosi juurihakemistoon. 2. Aseta 404-virhesivu IIS/ASP.netin alle Muokkaa ensin sovelluksen juurihakemiston asetuksia, avaa "web.config"-tiedostomuokkaus ja lisää siihen seuraava sisältö: <configuration> <system.web> <customErrors mode="On" defaultRedirect="error.asp"> <error statusCode="404" uudelleenohjaus="notfound.asp" /> </customErrors> </system.web> </configuration>
Tässä esimerkissä error.asp on oletus 404-sivu ja notfound.asp on räätälöity 404-sivu.
Lisää sitten mukautettu 404-sivun "notfound.asp": <% Response.Status = "404 ei löytynyt" %>
Tämä varmistaa, että IIS palauttaa "404"-tilakoodin oikein
Ystävällinen muistutus 1. Varmista, ettet ohjaa 404-virhettä suoraan verkkosivuston etusivulle, sillä se voi johtaa siihen, ettei kotisivusi ole mukana; 2. /Error.html Älä tuo pääverkkotunnusta sen eteen (väärä kirjoitusasu: yzznl.cn/error.html, oikein kirjoitettu :/error.html), muuten palautettu tilakoodi on 302 tai 200 statuskoodi. Kun etsit ohjeita muokata 404-virhesivua asp.net sivustolta, useimmat artikkelit neuvovat menemään web.config-sivustolle, etsimään system.web ja konfiguroimaan seuraavat.
Kopiointikoodi Koodi on seuraava:
<customErrors mode="On" error statusCode="404" redirect="/404.htm" > </customErrors>
Itse asiassa, kun teet tämän, et saa 404-löytämättömän verkkosivun otsikkotietoja, vaan 302-väliaikaisen uudelleenohjauksen otsikkotiedot. Voit käyttää Check Headers Tool -työkalua HTTP-tilakoodien tarkistamiseen.
Miten siis oikein konfiguroida omat 404-virhesivut asp.net verkkosivustolle?
Aloita tekemällä 404.aspx-sivu ja määritä se sitten customeErrors-tiedostossa web.config-tiedoston alla seuraavasti: customErrors redirectMode="ResponseRewrite" error statusCode="404" uudelleenohjaus="~/404.aspx"/
/customErrors
RedirectModella on kaksi ominaisuutta. ResponseRedirect tarkoittaa käyttäjän ohjaamista kyseiselle virhesivulle, ja alkuperäinen URL muutetaan kyseisen virhesivun URL-osoitteeksi. ResponseRewrite tarkoittaa käyttäjän ohjaamista virhesivulle muuttamatta alkuperäistä URL-osoitetta selaimessa.
Lisää sitten 404.aspx.cs-tiedostoon seuraava koodi Page_Load-tapahtumalle: Kopiointikoodi Koodi on seuraava:
suojattu void Page_Load(objektilähettäjä, EventArgs e)
{ Response.Status = "404 ei löytynyt";
}
|