Kas yra 404 klaida? HTTP 404 klaida reiškia, kad tinklalapis, į kurį nukreipia nuoroda, neegzistuoja, tai yra, pradinio tinklalapio URL yra netinkamas, o tai dažnai nutinka ir sunku išvengti, pvz.: tinklalapio URL generavimo taisyklių pakeitimai, tinklalapio failo pervardijimas ar perkėlimas, importuotos nuorodos rašybos klaida ir kt., dėl kurių pradinis URL adresas yra nepasiekiamas; Kai žiniatinklio serveris gauna panašią užklausą, jis grąžina 404 būsenos kodą, nurodantį naršyklei, kad prašomo ištekliaus nėra. Tačiau numatytasis 404 klaidos puslapis, skirtas žiniatinklio serveriams, nesvarbu, ar tai būtų "Apache", ar IIS, yra labai elementarus, nuobodus ir nepatogus vartotojui ir nesuteikia vartotojams reikiamos informacijos, kad gautų daugiau užuominų, o tai neabejotinai sukels vartotojų pasitraukimą. 404 puslapių vaidmuo Paieškos sistemos naudoja HTTP būsenos kodus, kad nustatytų tinklalapio būseną. Kai paieškos sistema gauna neteisingą nuorodą, svetainė turėtų grąžinti 404 būsenos kodą, nurodantį paieškos sistemai atsisakyti nuorodos indeksavimo. Jei grąžinamas 200 arba 302 būsenos kodas, paieškos sistemos indeksuoja nuorodą, todėl atsiranda daug skirtingų nuorodų, nukreipiančių į tą patį žiniatinklio turinį. Dėl to paieškos sistemos svetaine pasitiki žymiai mažiau. Kaip patikrinti, ar tinkintas 404 puslapis pateikia būsenos kodą "404" Nustatę pasirinktinį 404 klaidos puslapį, būtinai patikrinkite, ar jis teisingai pateikia būsenos kodą "404". Tikrinimo būdas taip pat yra gana paprastas, įveskite svetainės, kurios tinklalapyje nėra, URL, patikrinkite HTTP antraštės grąžinimą ir įsitikinkite, kad ji grąžina būsenos kodą "404". 404 puslapis yra teisingas dalykas 1. Kaip nustatyti "Apache server 404" puslapį Pridėkite kodą prie .htaccess failo: ErrorDocument 404/Error.html Sukurkite paprastą HTML404 puslapio pavadinimų Error.html Įdėkite Error.html į savo svetainės šakninį katalogą. 2. Nustatykite 404 klaidos puslapį IIS/ASP.net Pirmiausia pakeiskite programos šakninio katalogo nustatymus, atidarykite failo redagavimą "web.config" ir pridėkite prie jo šį turinį: <configuration> <system.web> <customErrors mode="On" defaultRedirect="error.asp"> <error statusCode="404" redirect="notfound.asp" /> </customErrors> </system.web> </configuration>
Šiame pavyzdyje error.asp yra numatytasis 404 puslapis, o notfound.asp yra tinkintas 404 puslapis.
Tada pridėkite pasirinktinį 404 puslapį "notfound.asp": <% Response.Status = "404 nerasta" %>
Taip užtikrinama, kad IIS teisingai grąžintų būsenos kodą "404"
Draugiškas priminimas 1. Įsitikinkite, kad 404 klaida nenukreipia tiesiai į pagrindinį svetainės puslapį, nes dėl to jūsų pagrindinis puslapis gali būti neįtrauktas; 2. /Error.html Prašome nenešti pagrindinio domeno vardo priešais jį (neteisinga rašyba: yzznl.cn/error.html, taisyklingas rašymas :/error.html), priešingu atveju grąžinamas būsenos kodas yra 302 arba 200 statuso kodas. Ieškant, kaip tinkinti 404 klaidos puslapį iš asp.net svetainės, daugumoje straipsnių nurodoma eiti į web.config, rasti system.web ir sukonfigūruoti šiuos dalykus.
Kopijuoti kodą Kodas yra toks:
<customErrors mode="On" error statusCode="404" redirect="/404.htm" > </customErrors>
Tiesą sakant, tai padarę gausite ne 404 nerasto tinklalapio antraštės informaciją, o 302 laikino peradresavimo antraštės informaciją. Norėdami patikrinti HTTP būsenos kodus, galite naudoti įrankį Tikrinti antraštes.
Taigi, kaip tinkamai sukonfigūruoti pasirinktinius 404 klaidų tinklalapius asp.net svetainei?
Pradėkite sukurdami 404.aspx puslapį, tada sukonfigūruokite jį customeErrors faile web.config taip: customErrors redirectMode="ResponseRewrite" error statusCode="404" redirect="~/404.aspx"/
/customErrors
RedirectMode turi dvi savybes. ResponseRedirect reiškia vartotojo nukreipimą į tą klaidos puslapį, o pradinis URL pakeičiamas į to klaidos puslapio URL. "ResponseRewrite" reiškia vartotojo nukreipimą į klaidos puslapį nekeičiant pradinio URL naršyklėje.
Tada 404.aspx.cs faile pridėkite šį Page_Load įvykio kodą: Kopijuoti kodą Kodas yra toks:
apsaugotas void Page_Load(objekto siuntėjas, EventArgs e)
{ Response.Status = "404 nerasta";
}
|