WordPress сайтът пренасочва към друг сайт: как да откриете пренасочването

Посетителите ви попадат на страница за лотария, аптека или фалшива техническа поддръжка, а вие виждате сайта си нормално. Това е белегът на вмъкнато пренасочване, най-често условно. Това ръководство показва как да го възпроизведете, да го откриете във файловете или в базата данни и да затворите достъпа, през който е поставено.

Публикувано на 21 септември 2026 г. Време за четене: 10 минути

Всички ръководства

Накратко

  1. Възпроизведете пренасочването като посетител: частен прозорец, телефон с мобилни данни, влизане през резултат от търсене.
  2. Направете пълно копие на сайта в сегашното му състояние, файлове и база данни, преди да променяте каквото и да било.
  3. Сменете паролите за хостинга, FTP, базата данни и администраторите на WordPress, след това подменете ключовете за сигурност в wp-config.php.
  4. Търсете пренасочването на четири места: .htaccess, PHP файловете, базата данни, настройките за адреса на сайта.
  5. Премахнете и достъпа, през който е поставено: непознати администраторски акаунти, PHP файлове в wp-content/uploads, разширения за преинсталиране или изтриване.
  6. Проверете отчета Проблеми със сигурността в Google Search Console и заявете преглед, ако сайтът е посочен там.

Защо не виждате пренасочването

Пренасочване, поставено при пробив, избира към кого да се прилага. Най-често то пощадява човека, който управлява сайта, за да остане на място възможно най-дълго. Най-честите условия:

Затова съобщение от клиент, че сайтът ви го праща другаде, заслужава внимание, дори ако при вас всичко се показва правилно.

Възпроизведете пренасочването

Поставете се на мястото на посетителя, който бива пренасочен:

  1. Отворете частен прозорец, потърсете името на фирмата си в търсачка и кликнете върху своя резултат.
  2. Повторете от телефон, с мобилни данни вместо Wi-Fi.
  3. Запишете адреса, към който води пренасочването, часа и устройството: тези три данни ще потрябват на хостинг доставчика, а по-късно и на заявката за преглед към Google.

Ако имате достъп до терминал, тази команда иска началната ви страница, като се представя за iPhone, дошъл от Google:

Терминал (в Windows въведете curl.exe вместо 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.vashiyat-sayt.com/

Прочетете първите редове на отговора. Код 301 или 302, последван от ред Location: към непознат адрес, означава пренасочване, направено от сървъра: то живее в .htaccess или в PHP файл. Код 200, докато браузърът все пак бива пренасочен, означава пренасочване, направено в страницата, с JavaScript: най-често то живее в базата данни или във файл на темата.

Преди да пипнете сайта: три действия

  1. Пълно копие в сегашното състояние. Файлове и база данни, с дата, съхранени извън сървъра. То служи за доказателство, за сравнение и за предпазна мрежа, ако почистването премахне нещо полезно.
  2. Паролите, от чисто устройство. Клиентският профил при хостинг доставчика, FTP или SFTP акаунтите, потребителят на базата данни (новата парола се въвежда в wp-config.php, константа DB_PASSWORD), след това всеки администраторски акаунт в WordPress.
  3. Ключовете за сигурност. Заменете осемте реда от AUTH_KEY до NONCE_SALT в wp-config.php с нов комплект, генериран на https://api.wordpress.org/secret-key/1.1/salt/. Всички отворени сесии се затварят, включително тази на нападателя.
С WP-CLI третото действие е една команда
wp config shuffle-salts

Къде се крие пренасочването

1. Файлът .htaccess

В корена на сайта, а понякога и в подпапка, .htaccess може да получи правила за пренаписване, добавени от нападателя. Блокът, който WordPress записва сам, е кратък и е ограден от # BEGIN WordPress и # END WordPress:

Блокът, който WordPress на български записва за сайт, инсталиран в корена на домейна
# BEGIN WordPress
# Директивите (редовете) между "BEGIN WordPress" и "END WordPress" са
# динамично генерирани и трябва да се променят само чрез филтрите на WordPress.
# Всяка промяна на директивите между тези маркери ще бъде заличена.
<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

Правило RewriteCond, което проверява %{HTTP_REFERER} (google, bing, facebook) или %{HTTP_USER_AGENT} (android, iphone, mobile), последвано от RewriteRule към външен адрес, е пренасочването. Разширенията за кеш и за сигурност също записват свои блокове, означени с името им: сверете всеки блок със списъка на разширенията си, преди да го премахнете.

2. PHP файловете

WP-CLI сравнява файловете на ядрото на WordPress и на разширенията с контролните суми, публикувани от WordPress.org, и изброява всеки променен или добавен файл:

Терминал, в корена на сайта
wp core verify-checksums
wp plugin verify-checksums --all

Втората команда покрива разширенията, разпространявани през хранилището на WordPress.org. Разширение, купено от издателя му, се сравнява с ново копие, изтеглено от профила ви при него. Случаят е чест: сред 540 сайта на МСП на WordPress от нашето измерване от 1 септември 2026 г. 66 % носят поне едно разширение, което липсва в публичното хранилище.

Без WP-CLI две търсения дават първи подбор:

Терминал, в корена на сайта
find . -name "*.php" -mtime -30
find wp-content/uploads -name "*.php"

Първото изброява PHP файловете, променени през последните 30 дни, второто изброява PHP файловете в папката с медийни файлове, където по подразбиране са подозрителни (някои разширения слагат там празен index.php, което е легитимно). Датата на промяна може да бъде подправена: стар файл на грешно място също заслужава проверка.

Отворете първо wp-config.php, index.php в корена, functions.php и header.php на активната тема и папката wp-content/mu-plugins: разширенията в нея се зареждат автоматично и не се изключват от администрацията. Признаците, които търсите: eval(, base64_decode(, gzinflate(, str_rot13(, дълги нечетими низове или window.location, последвано от адрес, който не познавате.

3. Базата данни

Пренасочване с JavaScript често се вмъква в съдържанието на страниците или в настройките, където нито един файл не го показва. WP-CLI търси низ във всички таблици на WordPress:

Терминал
wp db search "<script"
wp db search "fromCharCode"

Без WP-CLI същите търсения се пускат в phpMyAdmin, в раздела SQL:

SQL (заменете wp_ с префикса, зададен в wp-config.php, променлива $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%';

Някои резултати са легитимни: инструмент за статистика на посещенията, банер за бисквитки или джаджа, поставена от вас. Всичко, което не съответства на нещо, инсталирано от вас, заслужава проверка, особено скрипт, който сглобява адрес от кодове на символи.

4. Настройките за адрес и акаунтите

В Настройки > Общи полетата „WordPress Адрес (URL)“ и „Адрес на сайта (URL)“ трябва да съдържат вашия домейн. Същите стойности могат да бъдат наложени в wp-config.php с константите WP_HOME и WP_SITEURL: проверете и двете места.

Терминал
wp option get home
wp option get siteurl
wp user list --role=administrator

Когато константите са зададени, първите две команди връщат тяхната стойност. Последната изброява администраторите с датата им на регистрация; в администрацията същият списък се получава от менюто Потребители, филтрирано по ролята „Администратор“. Акаунт, който никой не разпознава, се изтрива, като съдържанието му се прехвърля на легитимен акаунт.

Премахнете пренасочването, после достъпа, през който е поставено

Изтриването на реда, който пренасочва, спира симптома. Достъпът, използван от нападателя, остава отворен, докато бъде открит, и пренасочването се връща в следващите дни. Редът, който дава траен резултат:

  1. Заменете файловете на ядрото с ново копие: изтрийте папките wp-admin и wp-includes, после пуснете wp core download --skip-content --force, която записва ядрото наново, без да докосва разширенията, темите и медийните ви файлове. Командата презаписва съществуващите файлове, но оставя добавените: затова двете папки се изтриват първо, а непознатите PHP файлове в корена се премахват ръчно.
  2. Преинсталирайте темата и всяко разширение от официалния им източник и изтрийте онези, които сайтът вече не използва, включително деактивираните: файловете им остават на сървъра.
  3. Премахнете чуждите PHP файлове от wp-content/uploads, правилата, добавени в .htaccess, и скриптовете, открити в базата данни.
  4. Проверете планираните задачи с wp cron event list: задача с непознато име може да постави кода отново.
  5. Обновете WordPress, темата и разширенията.
  6. Повторете тестовете от началото, от няколко устройства и в продължение на няколко дни.

Ако сайтът съхранява лични данни (формуляри, клиентски акаунти, поръчки), запишете часа, в който сте установили пробива. В Европейския съюз Общият регламент относно защитата на данните (ОРЗД) предвижда нарушението на сигурността на личните данни да бъде съобщено на надзорния орган не по-късно от 72 часа, след като сте разбрали за него, освен ако не съществува вероятност нарушението да породи риск за правата и свободите на физическите лица.

Google и какво виждат посетителите ви

Когато Google открие пренасочването, Chrome може да покаже червена страница „Опасен сайт“, преди да отвори сайта, а Google може да изпише под резултата ви „Този сайт може да е променен от хакери“. Отчетът Проблеми със сигурността в Google Search Console показва какво е открито и на кои адреси. Когато сайтът е почистен, бутонът за заявка за преглед (Request Review в английския интерфейс) пуска проверката.

Сайт, поет и поддържан след пренасочването

Премахнатото пренасочване оставя един въпрос: кой се грижи за сайта оттук нататък? Simafri поема сайта ви на WordPress, връща го онлайн върху основа, която хостваме, защитаваме и поддържаме актуална, и се грижи за него месец след месец. Домейн името и съдържанието остават ваши.

Искам да поемете сайта ми

Често задавани въпроси

Защо сайтът ми на WordPress пренасочва само на мобилни устройства?

Вмъкнатият код чете User-Agent на браузъра и пренасочва само телефоните. Човекът, който управлява сайта, често от компютър, не вижда нищо. Тествайте от телефон с мобилни данни или с curl, като изпратите идентификатора на мобилен браузър.

Достатъчно ли е да преинсталирам WordPress, за да премахна пренасочването?

Преинсталирането на ядрото записва наново файловете на WordPress, без да изтрива онези, които нападателят може да е добавил. Базата данни, темата, разширенията и папката с медийни файлове остават такива, каквито са, а точно там най-често се намират пренасочването и достъпът на нападателя. Новото ядро е една стъпка от почистването, която се допълва с базата данни, разширенията, акаунтите и паролите.

Сайтът е почистен, защо пренасочването се връща?

Защото достъпът, през който е поставено, още е там: добавен администраторски акаунт, PHP файл, скрит сред медийните файлове, планирана задача, уязвимо разширение. Всеки от тях позволява кодът да бъде поставен отново след почистването. Проверете акаунтите, папката wp-content/uploads, планираните задачи и версиите на разширенията, след това сменете паролите още веднъж.

Как да разбера дали Google е засякъл пренасочването?

Отворете Google Search Console и отчета „Проблеми със сигурността“: той изброява откритите проблеми и примерни адреси. Ако сайтът още не е потвърден в Search Console, потвърждаването чрез DNS запис покрива целия домейн.

Свържете се с нас