Хорошо, я знаю, как перенаправить обычную страницу, используя файл "host", но он не работает для определенных страниц, таких как http://rustledjimmies.com/ или http://heyyeyaaeyaaaeyaeyaa.com/

Например, я хочу перенаправить youtube.com на rustledjimmies.com/. Но после того, как я делаю то, что обычно делал для перенаправления, это просто не работает.

Есть идеи почему и как это исправить?

Вот пример, который я поместил в файл "hosts".

104.36.80.4 fb.com

IP-адрес предназначен для сайта rustledjimmies.com, но почему-то, когда я записываю его в "hosts", появляется другой сайт.

205.186.179.191 fb.com

Это для heyyeyaaeyaaaeyaeyaa.com, но это не отвечает вообще (для меня по крайней мере)

1 ответ1

4

Это не будет работать для некоторых сайтов.

Размещение одного сайта на сервере (или на IP-адресе) не очень хорошая идея для небольших сайтов. Возможно размещение нескольких веб-сайтов на одном IP-адресе, эта функция называется виртуальными хостами.

Но сервер должен каким-то образом проверить, какой сайт вы хотите открыть. Спецификация протокола HTTP имеет заголовок Host (который является обязательным начиная с HTTP 1.1), который содержит адрес веб-сайта, который запрашивает ваш браузер. Этот заголовок используется сервером для выбора соответствующего виртуального хоста.


Вот обычный запрос на YouTube:

  • Введите http://youtube.com в адресной строке и нажмите Enter
  • Ваш компьютер запрашивает DNS-сервер для разрешения доменного имени youtube.com в IP-адрес.
    • Ответ DNS-сервера: 46.28.247.104
  • Браузер отправляет HTTP-запрос на 46.28.247.104:

    GET / HTTP/1.1
    Host: youtube.com
    
    • Сервер по адресу 46.28.247.104 признает youtube.com своим виртуальным хостом и обслуживает его для вас.

Теперь давайте предположим, что вы подключили youtube.com к 192.168.0.100 с помощью файла hosts .

  • Введите http://youtube.com в адресной строке и нажмите Enter
  • IP-адрес youtube.com в файле hosts , поэтому поиск в DNS не требуется.
    • Система сообщает браузеру, что адрес youtube.com 192.168.0.100
  • Браузер отправляет HTTP-запрос на 192.168.0.100:

    GET / HTTP/1.1
    Host: youtube.com
    
    • Сервер по адресу 192.168.0.100 не распознает youtube.com качестве своего виртуального хоста, поэтому он отвечает кодом ошибки 404 .

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .