Я просто опубликую этот вопрос и отредактирую его, если сообщество сочтет, что он нуждается в доработке или уточнении.
Сегодня у меня возникла блестящая идея. Я много покупаю на Amazon.com. Amazon предлагает программу, в рамках которой часть всех ваших покупок направляется в благотворительный фонд по вашему выбору под названием «Amazon Smile». Вы можете «активировать» благотворительность, перейдя на «smile.amazon.com» (субдомен amazon.com). Я хочу использовать файл hosts в Windows 10 для перенаправления всякий раз, когда я набираю «amazon.com» для автоматического перехода на «smile.amazon.com», чтобы моя благотворительность всегда приносила пользу. К сожалению, это не работает, как я надеялся.
Сначала я открыл Notepad.exe от имени администратора. Затем я открыл файл hosts из Блокнота (путь :)
C:\Windows\System32\drivers\etc\hosts
и безуспешно пробовал все следующее:
Прямое преобразование URL
smile.amazon.com amazon.com
Пингуется с CMD, чтобы получить URL для smile.amazon.com (54.239.26.123)
54.239.26.123 amazon.com
Также добавлена маршрутизация поддоменов www.
54.239.26.123 amazon.com
54.239.26.123 www.amazon.com
Кажется, ничего из этого не сработало (когда я набираю _amazon.com_, адрес в строке URL не меняется на "smile.amazon.com"), однако есть какая-то ошибка сертификата. Я пробовал 4 браузера, включая Firefox, Chrome, SeaMonkey и IceDragon (очистив кеш для всех), но безрезультатно.
Согласно этому Ошибка сервера сообщение, я пробовал это:
ipconfig /flushdns
ping smile.amazon.com
Pinging smile.amazon.com [54.239.26.123] with 32 bytes of data:
Request timed out.
C:\WINDOWS\system32>nbtstat -R
Successful purge and preload of the NBT Remote Cache Name Table.
После внесения вышеуказанных изменений я получаю эту ошибку:
Хром:
Ваше соединение не является приватным
Злоумышленники могут пытаться украсть вашу информацию с www.amazon.com (например, пароли, сообщения или кредитные карты). NET :: ERR_CERT_COMMON_NAME_INVALID
Если я нажму «Дополнительно», я получу следующее:
Этот сервер не смог доказать, что это www.amazon.com; его сертификат безопасности получен с сайта smile.amazon.com. Это может быть вызвано неправильной конфигурацией или злоумышленником, перехватывающим ваше соединение.
Когда я все равно нажимаю, чтобы перейти на amazon, браузер переводит меня на amazon.com, и я вижу это в URL:
(https [зачеркнуто]): //www.amazon.com
Итак, я думаю, что хочу знать:
Разрешение DNS и перенаправление HTTP - это совершенно разные вещи, и этот подход неверен. Отравление вашего локального разрешения DNS для принудительного преобразования "amazon.com" в поддельный IP-адрес "smile.amazon.com" приведет только к проблемам с сертификатами SSL, сеансами HTTP и отказами межсайтовых запросов на стороне сервера:
Во-первых, сертификат SSL. amazon.com и smile.amazon.com обслуживаются с использованием сертификатов, специфичных для поддоменов, поэтому браузеры сообщают пользователю об ошибке при возникновении URL-запроса, не соответствующего имени сертификата. Итак, если вы запрашиваете ресурсы «amazon.com» на серверах, поддерживающих «smile.amazon.com», даже до того, как HTTP-запрос может быть выполнен, ваш браузер предупредит вас из-за несовпадения имени сертификата. Конечно, вы можете игнорировать это, но javascript, поддерживающий логику приложения, может отсутствовать при наличии перекрестных доменных запросов, что делает Интернет совершенно бесполезным.
Во-вторых, если вы каким-либо образом обойдете проблемы с SSL, ваш браузер будет отправлять запросы на smile.amazon.com с запросом содержимого amazon.com, что приведет к появлению на стороне сервера всевозможных механизмов безопасности, запрещающих такое пересечение сайтов. Запросы.
И, наконец, ожидайте всевозможных проблем с управлением сеансом на стороне сервера, аутентификацией, проверкой файлов cookie и т. Д.
Я искал решение для перенаправления URL-адреса для другого и нашел эту ветку. Я думал, что другие сочтут мой вывод полезным, даже если это не прямой ответ на ваш вопрос, тем не менее, это решение проблемы.
Я предлагаю вам попробовать вместо редактирования файла hosts в Windows использовать такой плагин, как Перенаправитель для Firefox или Редиректор для Chrome.
Это здорово, когда я не могу просматривать некоторые веб-сайты, когда я не хочу, например, в целях повышения производительности, или заставлять себя использовать новую услугу. Можно представить себе использование перенаправителя, чтобы прекратить использование hotmail.com и использовать другую настраиваемую службу, например, без изменения каких-либо других привычек.
Это может помочь вам решить вашу проблему, если вы пользователь Chrome:
Всегда улыбайся это расширение Chrome, которое автоматически перенаправляет вас на smile.amazon.com.
Поскольку и amazon.com, и smile.amazon.com обслуживаются более чем одним IP-адресом, ваш файл hosts может требовать регулярного обновления.
И также может быть, что Amazon использует заголовок хоста (который представляет собой домен, который вы пишете в браузере), чтобы определить, к какому сайту вы пытаетесь получить доступ, поэтому я думаю, что нужен другой подход. Если у вас есть возможность настроить локальный веб-сервер (либо на вашем собственном компьютере, либо где-то на хосте), вы можете сделать этот веб-сервер фиктивным веб-сайтом amazon.com, который выполняет перенаправление на smile.amazon.com, а затем сделать одна запись в файле hosts:
<ip-of-local-webserver> amazon.com
Поскольку веб-сервер будет выполнять перенаправление, ваш браузер будет перенаправляться на smile.amazon.com каждый раз, когда вы пишете amazon.com в браузере. Это также устранит любые предупреждения о сертификатах.
NBTSTAT - это инструмент NetBIOS, не имеющий ничего общего с DNS.
Если вы хотите, чтобы amazon.com разрешался в IP-адрес smile.amazon.com через ваш файл хоста, вы должны пинговать amazon.com, а не smile.amazon.com после того, как вы добавили запись файла хоста. Ваша цель - разрешить amazon.com IP-адрес smile.amazon.com, поэтому имя amazon.com - это имя, которое вы должны использовать в своих тестах, чтобы убедиться, что оно разрешается в IP-адрес smile.amazon.com. .
Если вы добавляете запись в файлы хостов для amazon.com, используя IP-адрес для smile.amazon.com, а пинг amazon.com возвращает IP-адрес для smile.amazon.com, то файлы хостов работают. Если ваш браузер все равно направляет вас на amazon.com, это не имеет ничего общего с вашим файлом hosts.
Думаю, здесь есть небольшая путаница. Эти строки вам не нужны:
smile.amazon.com amazon.com
54.239.26.123 amazon.com
Но только те, которые перенаправляют amazon.com
Отправить smile.amazon.com
IP:
54.239.26.123 amazon.com
54.239.26.123 www.amazon.com
Но тоже не работает:
1-й: потому что используя айпи адрес вы достигаете их NIC / NAT / шлюз, Пока URL указывает на страница интернета на веб-сайтах за этим IP-адресом. Например, если вы разрешите youtube.com
а затем попытайтесь вручную открыть его IP-адрес, вы достигнете www.google.com
, потому что оба размещены за одним и тем же адресом (адресами) и идентифицируются своим URL. Итак, представьте, что оба размещены позади 54.239.26.123
и единственный способ добраться до них - это URL, который вы заменили на amazon.com
, что означает, что вы хотите посетить amazon.com
!
2-й: Предположим smile.amazon.com
размещен на другом сервере. Сертификаты SSL / TLS выдаются URL-адресам, в некоторых случаях, даже если вы заходите на веб-сайт, используя address.com
вместо www.address.com
вы получите ошибку сертификата, потому что сертификат выдается только последнему. Итак, если вы попытаетесь получить доступ к IP-адресу, предназначенному для smile.amazon.com
используя адрес amazon.com
вы получите предупреждение о безопасности сертификата, и вам нужно будет добавить исключение безопасности.
Извините, я не эксперт в веб-сервисах / хостинге. Я просто постарался объяснить это.