WordPress-hjemmeside omdirigerer til en anden side: find omdirigeringen

Dine besøgende lander på en lotteriside, et onlineapotek eller en falsk supportside, mens du selv ser din hjemmeside helt normalt. Det er kendetegnet for en indsat omdirigering, som regel en betinget en. Denne guide viser, hvordan du fremkalder den, finder den i filerne eller i databasen, og lukker den adgang, der blev brugt til at sætte den ind.

Udgivet den 21. september 2026 Læsetid: 10 minutter

Alle guider

Det vigtigste

  1. Fremkald omdirigeringen, som en besøgende oplever den: privat vindue, telefon på mobildata, klik ind fra et søgeresultat.
  2. Tag en komplet kopi af hjemmesiden, som den er, filer og database, før du ændrer noget.
  3. Skift adgangskoderne til webhotellet, FTP, databasen og WordPress-administratorerne, og forny derefter sikkerhedsnøglerne i wp-config.php.
  4. Led efter omdirigeringen fire steder: .htaccess, PHP-filerne, databasen og indstillingerne for hjemmesidens adresse.
  5. Fjern også den adgang, der satte den ind: ukendte administratorkonti, PHP-filer i wp-content/uploads, plugins, der skal geninstalleres eller slettes.
  6. Tjek rapporten «Sikkerhedsproblemer» i Google Search Console, og anmod om gennemgang, hvis hjemmesiden står der.

Hvorfor du ikke selv ser omdirigeringen

En omdirigering, der er sat ind under et hack, vælger, hvem den rammer. Den skåner som regel den, der driver hjemmesiden, for at blive siddende så længe som muligt. De mest almindelige betingelser:

Skriver en kunde «din hjemmeside sender mig et andet sted hen», så tag det alvorligt, også selv om alt vises korrekt hos dig.

Fremkald omdirigeringen

Sæt dig i stedet for den besøgende, der bliver ramt:

  1. Åbn et privat vindue, søg efter navnet på din virksomhed i en søgemaskine, og klik på dit eget resultat.
  2. Gør det samme fra en telefon, på mobildata frem for wi-fi.
  3. Skriv destinationsadressen, klokkeslættet og enheden ned: de tre oplysninger skal din hostingudbyder bruge, og senere også anmodningen om gennemgang hos Google.

Har du adgang til en terminal, henter denne kommando din forside, mens den giver sig ud for at være en iPhone, der kommer fra Google:

Terminal (på Windows skriver du curl.exe i stedet for curl)
curl -s -i -A "Mozilla/5.0 (iPhone; CPU iPhone OS 17_0 like Mac OS X)" -e "https://www.google.com/" https://www.din-hjemmeside.com/

Læs de første linjer i svaret. En statuskode 301 eller 302 efterfulgt af en Location:-linje til en ukendt adresse betyder, at omdirigeringen sker på serveren: den ligger i .htaccess eller i en PHP-fil. En statuskode 200, mens browseren alligevel bliver omdirigeret, betyder, at omdirigeringen sker i siden, med JavaScript: den ligger som regel i databasen eller i en fil i temaet.

Tre ting, før du rører hjemmesiden

  1. En komplet kopi, som den er. Filer og database, dateret og gemt uden for serveren. Den er dit bevis, dit sammenligningsgrundlag og dit sikkerhedsnet, hvis oprydningen fjerner noget, du havde brug for.
  2. Nye adgangskoder, fra en ren enhed. Din konto hos hostingudbyderen, FTP- eller SFTP-konti, databasebrugeren (ret derefter DB_PASSWORD i wp-config.php) og hver eneste administratorkonto i WordPress.
  3. Nye sikkerhedsnøgler. Erstat de otte linjer fra AUTH_KEY til NONCE_SALT i wp-config.php med et nyt sæt fra https://api.wordpress.org/secret-key/1.1/salt/. Alle åbne sessioner bliver logget ud, også angriberens.
Med WP-CLI klares det tredje trin med én kommando
wp config shuffle-salts

Hvor omdirigeringen gemmer sig

1. Filen .htaccess

I hjemmesidens rodmappe, og nogle gange i en undermappe, kan .htaccess indeholde omskrivningsregler, som angriberen har tilføjet. Den blok, WordPress selv skriver, er kort og står mellem # BEGIN WordPress og # END WordPress:

Blokken, som WordPress på dansk skriver for en hjemmeside installeret i domænets rod
# BEGIN WordPress
# Direktiverne (linjer) mellem 'BEGIN WordPress' og 'END WordPress' er
# dynamisk genereret og bør kun ændres via WordPress-filtre.
# Eventuelle ændringer i direktiverne mellem disse markører vil blive overskrevet.
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteRule .* - [E=HTTP_AUTHORIZATION:%{HTTP:Authorization}]
RewriteBase /
RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
</IfModule>

# END WordPress

En RewriteCond, der tester %{HTTP_REFERER} (google, bing, facebook) eller %{HTTP_USER_AGENT} (android, iphone, mobile), efterfulgt af en RewriteRule til en ekstern adresse, er omdirigeringen. Cache- og sikkerhedsplugins skriver også deres egne blokke, mærket med deres navn: hold hver blok op mod listen over dine plugins, før du fjerner den.

2. PHP-filerne

WP-CLI sammenligner filerne i WordPress-kernen og i dine plugins med de kontrolsummer, WordPress.org offentliggør, og viser hver fil, der er ændret eller tilføjet:

Terminal, i hjemmesidens rodmappe
wp core verify-checksums
wp plugin verify-checksums --all

Den anden kommando dækker plugins, der distribueres gennem WordPress.org-kataloget. Et plugin, der er købt hos udgiveren, sammenlignes med en frisk kopi hentet fra din konto hos udgiveren. Det er almindeligt: blandt de 540 WordPress-hjemmesider hos SMV'er i vores måling fra 1. september 2026 bruger 66 % mindst ét plugin, der ikke findes i det offentlige katalog.

Uden WP-CLI giver to søgninger en første sortering:

Terminal, i hjemmesidens rodmappe
find . -name "*.php" -mtime -30
find wp-content/uploads -name "*.php"

Den første viser PHP-filer, der er ændret inden for de seneste 30 dage, den anden PHP-filer i mediemappen, hvor de som udgangspunkt er mistænkelige (nogle plugins lægger en tom index.php dér, og den er legitim). En ændringsdato kan forfalskes: en gammel fil fortjener stadig et blik, hvis den ligger det forkerte sted.

Åbn først wp-config.php, index.php i rodmappen, functions.php og header.php i det aktive tema samt mappen wp-content/mu-plugins: plugins i den mappe indlæses automatisk og kan ikke slås fra i administrationen. Tegn at kigge efter: eval(, base64_decode(, gzinflate(, str_rot13(, lange ulæselige tekststrenge eller window.location efterfulgt af en adresse, du ikke kender.

3. Databasen

En omdirigering i JavaScript bliver gerne lagt ind i sidernes indhold eller i indstillingerne, hvor ingen fil viser den. WP-CLI søger efter en tekststreng i alle WordPress-tabeller:

Terminal
wp db search "<script"
wp db search "fromCharCode"

Uden WP-CLI kører du de samme søgninger i phpMyAdmin, under fanen SQL:

SQL (erstat wp_ med præfikset fra wp-config.php, variablen $table_prefix)
SELECT ID, post_title FROM wp_posts WHERE post_content LIKE '%<script%';
SELECT option_name FROM wp_options WHERE option_value LIKE '%<script%';

Nogle resultater er legitime: et værktøj til besøgsstatistik, et cookiebanner eller en widget, du selv har sat ind. Det, der ikke svarer til noget, du har installeret, skal undersøges nærmere, især et script, der bygger en adresse ud fra tegnkoder.

4. Adresseindstillingerne og kontiene

Under Indstillinger > Generelt skal «WordPress-adresse (URL)» og «Webstedsadresse (URL)» vise dit eget domæne. De samme værdier kan være tvunget igennem i wp-config.php med konstanterne WP_HOME og WP_SITEURL: tjek begge steder.

Terminal
wp option get home
wp option get siteurl
wp user list --role=administrator

Når konstanterne er defineret, returnerer de to første kommandoer deres værdi. Den sidste viser administratorerne med deres registreringsdato; i administrationen får du den samme liste fra menuen Brugere, filtreret på rollen Administrator. En konto, som ingen genkender, slettes, og dens indhold tildeles en legitim konto.

Fjern omdirigeringen, og derefter adgangen, der satte den ind

Når du sletter linjen, der omdirigerer, stopper symptomet. Den adgang, angriberen brugte, forbliver åben, indtil den er fundet, og omdirigeringen vender tilbage inden for få dage. Den rækkefølge, der holder:

  1. Erstat kernefilerne med en frisk kopi: slet mapperne wp-admin og wp-includes, og kør derefter wp core download --skip-content --force, som skriver kernen på ny uden at røre dine plugins, temaer og medier. Kommandoen overskriver eksisterende filer, men sletter ingen tilføjede filer: derfor slettes de to mapper først, og derfor fjernes ukendte PHP-filer i rodmappen manuelt.
  2. Geninstaller temaet og hvert plugin fra deres officielle kilde, og slet dem, hjemmesiden ikke længere bruger, også de deaktiverede: deres filer ligger stadig på serveren.
  3. Fjern fremmede PHP-filer fra wp-content/uploads, de regler, der er tilføjet i .htaccess, og de scripts, du har fundet i databasen.
  4. Gennemgå de planlagte opgaver med wp cron event list: en opgave med et ukendt navn kan lægge koden ind igen.
  5. Opdater WordPress, temaet og dine plugins.
  6. Gentag testene fra begyndelsen, fra flere enheder og over flere dage.

Opbevarer hjemmesiden personoplysninger (formularer, kundekonti, ordrer), så skriv ned, hvornår du opdagede hacket. I Den Europæiske Union kræver databeskyttelsesforordningen (GDPR), at et brud på persondatasikkerheden anmeldes til tilsynsmyndigheden uden unødig forsinkelse og om muligt senest 72 timer efter, at man er blevet bekendt med det, medmindre det er usandsynligt, at bruddet indebærer en risiko for fysiske personers rettigheder eller frihedsrettigheder.

Google, og det dine besøgende ser

Når Google opdager omdirigeringen, kan Chrome vise en rød side med advarslen «Farligt website», før hjemmesiden åbner, og Google kan skrive «Dette website er muligvis blevet hacket» under dit søgeresultat. Rapporten Sikkerhedsproblemer i Google Search Console viser, hvad der er fundet, og på hvilke adresser. Når hjemmesiden er renset, starter knappen Anmod om gennemgang kontrollen.

En hjemmeside, vi overtager og holder kørende

Når omdirigeringen er fjernet, står ét spørgsmål tilbage: hvem passer hjemmesiden fremover? Simafri overtager din WordPress-hjemmeside, sætter den online igen på et fundament, vi hoster, sikrer og holder opdateret, og passer den måned efter måned. Du beholder dit domænenavn og dit indhold.

Få min hjemmeside overtaget

Ofte stillede spørgsmål

Hvorfor omdirigerer min hjemmeside kun på mobilen?

Den indsatte kode læser browserens User-Agent og omdirigerer kun telefoner. Den, der driver hjemmesiden, sidder ofte ved en computer og ser ingenting. Test fra en telefon på mobildata, eller med curl, hvor du sender en mobilbrowsers identifikation.

Er det nok at geninstallere WordPress for at fjerne omdirigeringen?

En geninstallation af kernen skriver WordPress-filerne på ny uden at slette dem, en angriber kan have tilføjet. Databasen, temaet, dine plugins og mediemappen forbliver, som de er, og det er typisk dér, omdirigeringen og angriberens adgang ligger. En frisk kerne er ét trin i oprydningen, sammen med databasen, dine plugins, kontiene og adgangskoderne.

Hjemmesiden er renset, så hvorfor vender omdirigeringen tilbage?

Fordi den adgang, der blev brugt til at sætte den ind, stadig findes: en tilføjet administratorkonto, en PHP-fil gemt blandt medierne, en planlagt opgave, et sårbart plugin. Hver af dem gør det muligt at lægge koden ind igen efter oprydningen. Tjek kontiene, mappen wp-content/uploads, de planlagte opgaver og versionerne af dine plugins, og skift derefter adgangskoderne igen.

Hvordan ved jeg, om Google har opdaget omdirigeringen?

Åbn Google Search Console og rapporten Sikkerhedsproblemer: den viser de fundne problemer og eksempler på berørte webadresser. Er hjemmesiden endnu ikke bekræftet i Search Console, dækker en bekræftelse via en DNS-registrering hele domænet.

Kontakt os