Нужно больше информации — покажите, пожалуйста, полный кусок кода и сообщение об ошибке/поведение в браузере (консоль, вкладка Network). Пока могу перечислить самые частые причины и решения, почему «прямая ссылка на Яндекс не работает».
1) Если вы делаете серверный редирект в PHP
- Правильно:
<?php
header("Location: https://yandex.ru/");
exit;
- Ошибки:
- header() вызван после вывода (включая пробелы/ BOM). В этом случае получите «Headers already sent» или редирект не сработает. Решение — вызывать header() до любого вывода или использовать ob_start().
- Не забывайте exit; после header(), иначе скрипт продолжит работу.
- Указывайте полный URL с протоколом (https://). header("Location: yandex.ru") будет относительным и не сработает как ожидается.
2) Если вы используете ссылку в HTML
- Пример:
<a href="https://yandex.ru/">Яндекс</a>
- Ошибки:
- Если страница загружена по HTTPS, а ссылка — http:// (без s), браузер обычно позволяет, но могут быть политики CSP или блокировка смешанного контента для некоторых ресурсов.
- Если ссылка открывается в iframe, Yandex отправляет заголовок X-Frame-Options: DENY/SAMEORIGIN и не позволит отобразить себя в iframe — в таком случае «не работает» (пустой фрейм / ошибка в консоли).
3) Если вы пытаетесь получить содержимое Яндекса (file_get_contents / cURL)
- file_get_contents("https://yandex.ru") требует allow_url_fopen = On.
- cURL: возможно проблема с верификацией SSL (сертификат). Для теста можно временно отключить проверку:
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
но лучше указать корректный cacert.pem или обновить CA.
- Если используете cURL и хотите следовать редиректам — включите:
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, true);
4) Браузерные политики / блокировка
- X-Frame-Options и Content-Security-Policy могут блокировать загрузку в iframe.
- Mixed content: если ваша страница по HTTP/HTTPS, браузер может блокировать ресурсы.
- Попробуйте открыть ссылку напрямую в адресной строке браузера — если там работает, значит проблема в коде/встраивании.
5) Примеры для проверки
- Простая серверная переадресация:
<?php
header("Location: https://yandex.ru/");
exit;
- Простая ссылка:
<a href="https://yandex.ru/" target="_blank" rel="noopener">Открыть Яндекс</a>
Что сделать сейчас
- Пришлите ваш полный код (тот, что вы начали писать в вопросе) и что именно «не работает» (пустая страница, ошибка в консоли, ничего не происходит, предупреждение в логах).
- Укажите, как вы ожидаете открыть Яндекс: редирект, ссылка, iframe, получить HTML через cURL/file_get_contents и т. п.
С этой информацией смогу дать точное решение.