Olen jo aijemmin avannut otsikon liittyen Apachen PHP tukeen. Nyt haluaisin omat virhesivut palvelimelle ja noudatin (luulisin) ohjelmointiputkan opasta, mutta joku meni pieleen koska virhesivut eivät näy.
Tein muistiolla .htaccess tiedoston johon laitoin tekstin:
ErrorDocument 404 http://217.78.203.57/404error.htm
.htaccess sijaitsee ihan siinä juurikansiossa josta Apache tiedostot jakaa.
Ja tuon 404error.htm olen jo luonut. Apachen httpd.conffissahan ei tarvinnut vaihtaa kuin None -> All
Tuli mieleen, että täytyykö muut apachen konffaukset tehdä ensin? En tarvitse esim. SSI tai MySQL:lää. Onko ne pakko kuitenki asentaa?
En tiedä kyllä, mistä oppaasta tuon katsoit, mutta itse ainakin olisin asettanut virhetiedoston näin:
ErrorDocument 404 /404error.htm
Jos taas virhetiedosto olisi osoitteessa http://palvelin/hakemisto/404error.htm, niin se laitettaisiin näin:
ErrorDocument 404 /hakemisto/404error.htm
Ja tuo ei kuitenkaan riipu ollenkaan .htaccess tiedoston sijainnista.
SSI tai MySQL:ää tai mitään muuta ei ole pakko asentaa, ellei niitä tarvitse. Jotta tuo ErrorDocument toimisi, ei tarvitse asentaa mitään muuta kuin perus Apache itse. :)
Ei tuo merkintätapa paljoa auttanut... Edellee vanha tuttu "Sivua ei löydy" juttu :(
Minkä kokoinen tuo sinun virhesivusi on (tavuina)? Ainakin oma pikainen kokeiluni IE:llä ja Abyss-palvelimella tuotti tuloksen, että virhesivun pitää olla kooltaan ainakin pari kilotavua, että se näkyy. Muilla selaimilla ei pitäisi moista ilmetä. Jos epäilet, että virhesivusi on turhan pieni, niin pistä sinne sekaan vaikka jotain turhia kommentteja...
Jostain muistan lukeneeni, että IE:ssä virhesivun on oltava vähintään puoli kilotavua, että se näytetään...
Minulla ainakin tuo oma virhesivu toimi.
<offtopic>
http://www.poispakkoruotsi.com
</offtopic>
EDIT: Toimii siitä huolimatta, että omistan IE, ja kaikki pitäisi olla perusasetuksilla
lainaus:
Jostain muistan lukeneeni, että IE:ssä virhesivun on oltava vähintään puoli kilotavua, että se näytetään...
Näin minäkin muistelisin. Ja tuon typerän "ominaisuuden" saa pois Tools > Internet Options > Advanced > [ ] Show friendly HTTP error messages
No se on yli kolme kiloa eikä toimi...
Varmaan selaimessa jotain vikaa sitte, koska ton www.poispakkoruotsi.com virhe sivut näyttää kyl ihan samoilta ku kaikki muutkin...
Sitten jos otan IE:n asetuksista pois: Työkalut > Internet asetukset > Lisäasetukset > Näytä URL helpossa muodossa ni sitte se muuttaa kaikkia virheilmoituksia vaan Lontooksi eli "Not Found"
Joku mättää ja pahasti :|
lainaus:
No se on yli kolme kiloa eikä toimi...
Oletko nyt ihan varma tästä? Ainakin Mozillan Page Info näyttää osoitteessa http://217.78.203.57/404error.htm olevan sivun kooksi 0,36 kt (369 tavua).
Sen tarkemmin asiaa tuntematta, Abyss:in käyttäjillä on helpompaa: http://www.aprelium.com/data/abyssws-x1-win-doc-html/serveradvanced.html#CUSTOMERRORS
:)
lainaus:
Sitten jos otan IE:n asetuksista pois: Työkalut > Internet asetukset > Lisäasetukset > Näytä URL helpossa muodossa
Väärä asetus. En muista miten tuo "show friendly HTTP error messages" on käännetty suomeksi, mutta "näytä URL helpossa muodossa" se ei oo.
Se on "Näytä HTTP-virheilmoitukset helpossa muodossa", eli muutaman rivin verran ylempänä tuosta URL-härvelistä.
Näyttäs virhesivu nyt toimivan. Voisin suositella yhteystietojen laittamista virhesivulle (ja vaikka lomakkeen) jos kerran kaipaat ilmoituksia rikkinäisistä linkeistä.
Pienellä vaivalla onnistuis tietty oman lokin kirjoittaminen noista virheistä. Http_refereriä tutkailemalla selviää onko linkitetty jostain muualta vai omilta sivuilta.
Nyt tuo sivu näyttää olevan siinä vain siksi että se on mahdollista tehdä itse.
Joo siis toihan oli vasta testi eli kyllä sinne on tulossa yhteystiedot sun muut. Eli siis ne toimii vai? Mulla ei toimi vieläkään... Koko suuremmaksi sitten kai.
onkos kellään kokemuksia siitä että tuo 404 ohjaus ei pelaa kuin html tiedostoilla.. siis jos kirjoitetaan virheellinen sivun nimi tyyliin sivue.php niin eipä ohjaus pelaa kun sivue.html taas ohjaa ihan ok..
pitäisikö tuohon tehdä jotakin lisäystä?
Aihe on jo aika vanha, joten et voi enää vastata siihen.