Skip to content

Allt om WordPress, webbutveckling — och mer därtill

.htaccess-granskning: fel 500, döda direktiv, tecken på intrång

.htaccess-granskning: varför webbplatsen svarar 500 och vilka regler som inte fungerar

Dra hit filen — verktyget hittar BOM, döda direktiv, regler med hög risk för fel 500 och tecken på utomstående ingrepp. Filen läses i din webbläsare och skickas ingenstans.

Bytekontroller — BOM, CRLF, icke utskrivbara och osynliga tecken — är möjliga bara för en fil. Vid inklistring från urklipp har webbläsaren redan tagit bort dem, så den vanligaste orsaken till ett 500-fel blir osynlig.
Analysen startar automatiskt. Filen skickas ingenstans — det är din webbläsare som läser den.
Kontext

En ren .htaccess botar inte ett intrång. Är webbplatsen komprometterad bor skadekoden i PHP, och .htaccess är bara följden: droppern skriver tillbaka filen inom några minuter efter att du städat den. Ordningen är den omvända — hitta först den körbara koden, städa sedan i konfigurationen.

Filen läses i din webbläsare — innehållet skickas ingenstans och sparas inte.

Varför en fil och inte inklistrad text

Den vanligaste orsaken till ett 500-fel efter en redigering av .htaccess syns inte alls i texten. Det är BOM — tre osynliga byte i början av filen som Anteckningar i Windows lägger till vid sparande i UTF-8. Apache uppfattar dem som en del av det första direktivet och kan inte tolka det. Därför tar verktyget emot just filen: bara så går det att läsa bytena och se BOM, radbrytningar i Windows-stil och osynliga tecken inuti raderna. Den andra gruppen av problem är direktiv som inte gör något men ser fungerande ut. mod_gzip_on är syntax från Apache 1.3; på moderna servrar ignoreras det tyst medan man i åratal tror att komprimeringen är på. Ett ExpiresByType-block inlindat i en kontroll av mod_headers.c i stället för mod_expires.c fungerar inte heller — och utan en ledtråd märks det inte. För det tredje php_value och php_flag. De fungerar bara när PHP är inläst som Apache-modul. På moderna webbhotell med PHP-FPM ignoreras en sådan rad eller ger direkt en 500. Och separat om säkerhet: om filen innehåller regler som omdirigerar besökare beroende på vilken sökmotor de kom från, eller som döljer omdirigeringen för administratören, är det ett typiskt tecken på intrång. Men en ren .htaccess botar inte intrånget: nästan alltid ligger det ett PHP-skript någonstans i filerna som skriver tillbaka den.

Vanliga frågor