Skip to content

Kaikki WordPressistä, web-kehityksestä — ja paljon muuta

.htaccess-tarkastus: virhe 500, kuolleet direktiivit, murron merkit

.htaccess-tarkastus: miksi sivusto palauttaa 500 ja mitkä säännöt eivät toimi

Raahaa tiedosto tähän — työkalu löytää BOMin, kuolleet direktiivit, säännöt joissa on suuri 500-virheen riski, sekä merkit ulkopuolisesta kajoamisesta. Tiedosto luetaan selaimessasi eikä sitä lähetetä minnekään.

Tavutason tarkistukset — BOM, CRLF, tulostumattomat ja näkymättömät merkit — ovat mahdollisia vain tiedostolle. Leikepöydältä liitettäessä selain on jo poistanut ne, joten yleisin 500-virheen syy jää näkymättömiin.
Analyysi käynnistyy automaattisesti. Tiedostoa ei lähetetä minnekään — sen lukee selaimesi.
Konteksti

Puhdas .htaccess ei paranna murtoa. Jos sivusto on vaarantunut, haitallinen koodi asuu PHP:ssä ja .htaccess on vain sen seuraus: dropper kirjoittaa tiedoston takaisin minuuteissa siitä, kun olet siivonnut sen. Järjestys on päinvastainen — etsi ensin suoritettava koodi, siivoa vasta sitten asetustiedosto.

Tiedosto luetaan selaimessasi — sen sisältöä ei lähetetä minnekään eikä tallenneta.

Miksi tiedosto eikä liitetty teksti

Yleisin syy 500-virheeseen .htaccess-tiedoston muokkauksen jälkeen ei näy tekstissä lainkaan. Se on BOM — kolme näkymätöntä tavua tiedoston alussa, jotka Windowsin Muistio lisää tallentaessaan UTF-8-muotoon. Apache pitää niitä ensimmäisen direktiivin osana eikä pysty jäsentämään sitä. Siksi työkalu ottaa vastaan juuri tiedoston: vain niin tavut voidaan lukea ja BOM, Windows-tyyliset rivinvaihdot sekä rivien sisällä olevat näkymättömät merkit havaita. Toinen ongelmaryhmä ovat direktiivit, jotka eivät tee mitään mutta näyttävät toimivilta. mod_gzip_on on Apache 1.3:n syntaksia; nykyisillä palvelimilla se ohitetaan hiljaisesti, ja ihmiset uskovat vuosia pakkauksen olevan päällä. Myöskään ExpiresByType-lohko, joka on kääritty mod_headers.c:n tarkistukseen mod_expires.c:n sijaan, ei toimi — eikä sitä ilman vihjettä huomaa. Kolmantena php_value ja php_flag. Ne toimivat vain, kun PHP on ladattu Apachen moduulina. Nykyaikaisilla PHP-FPM-webhotelleilla tällainen rivi joko ohitetaan tai se antaa heti 500:n. Ja erikseen tietoturvasta: jos tiedostosta löytyy sääntöjä, jotka ohjaavat kävijöitä sen mukaan, mistä hakukoneesta he tulivat, tai piilottavat uudelleenohjauksen ylläpitäjältä, se on tyypillinen murron merkki. Puhdas .htaccess ei kuitenkaan paranna murtoa: lähes aina jossain tiedostoissa asuu PHP-skripti, joka kirjoittaa sen takaisin.

Usein kysytyt kysymykset