27

Как настроить Chrome для локальной ссылки на поиск имен хостов, а не из стандартного файла etc/hosts?

При отладке веб-сайта иногда полезно настроить записи в C:\Windows\system32\drivers\etc\hosts, которые заменяют определенные домены на localhost, что позволяет мне на лету тестировать версии веб-сайтов или доменов, которые могут конфликт с живыми актуальными сайтами.

Можно ли настроить Google Chrome таким образом, чтобы имитировать и упростить этот процесс?

Я не буду изменять экземпляр браузера так, чтобы он вел себя так, как будто etc/hosts был изменен, хотя даже это может быть слишком большой угрозой безопасности в расширении.

6 ответов6

10

Я только что нашел расширение Host Switch Plus Chrome, которое делает именно это;)

6

Один из способов достижения вашей реальной цели - не использовать расширения Chrome или даже Chrome вообще. Таким способом можно настроить интеллектуальный прокси-сервер HTTP, указать на него Chrome, а затем добавить правила перезаписи на прокси-сервер, которые перезаписывают URL-адреса под обложками.

Есть много людей, которые делают это с различными прокси-серверами HTTP - слишком много, чтобы подробно описать каждый из них в ответе здесь. Они делают это для целей рекламы, веб-ошибок и тому подобного, но принцип и механизм идентичны тому, что вы хотите сделать. Они хотят, чтобы браузер WWW извлекал определенный URL-адрес как обычно, но фактический контент, который он получает, является содержимым другого (локального или иного) URL-адреса. Единственное, что нужно знать WWW-браузеру, это то, что он общается с Интернетом через прокси-сервер.

Для одного примера, см. Ad Zapper на SourceForge. Это сценарий Perl, который работает совместно с прокси-сервером Squid для переписывания URL-адресов на лету в прокси-сервере. Как вы можете видеть из своей базы данных конфигурации, люди использовали его механизм для широкого круга задач, от обеспечения того, чтобы один всегда видит "для печати" формы статей на новостных услугах, избавившись от рандомизированных реклам перенаправлений на Интернет порнографических сайтов.

Обратите внимание, что это намного лучше, чем то, что вы делаете с файлом hosts , который является неподходящим механизмом для манипулирования службой WWW. hosts дело только с поиском по имени и адресу, перебирают все остальное (вне браузера WWW), которое необходимо для поиска по имени и адресу, и (как вы, наверное, уже знаете) требуют, чтобы каждое переписанное имя хоста было дополнительно настроено как виртуальный хост на целевом содержимом HTTP-сервере. Напротив, перезаписывающий прокси-сервер HTTP такого типа работает с URL-адресами и влияет только на HTTP и браузеры WWW, настроенные для его использования в первую очередь. Таким образом, он может делать такие вещи, как переписывать URL-адреса JavaScript и оставлять все остальное с того же WWW-сайта в одиночку; переписать всю нагрузку на имена хостов только на одно; и сделать (еще дальше) сопоставление с образцом. (Есть примеры этой самой вещи в базе данных конфигурации Ad Zapper, обратите внимание.) И можно сделать что-то, например, чтобы один WWW-браузер просматривал мир через перезаписывающий прокси-сервер, а другой - напрямую, на одной машине одновременно.

2

Может быть, это избавит вас от некоторых шагов в редактировании файла .hosts: http://www.howtogeek.com/howto/6540/stupid-geek-tricks-create-a-shortcut-to-quickly-edit-your-hosts-file/

щелкните правой кнопкой мыши меню "Пуск" и создайте ярлык со следующим расположением:

notepad c:\windows\system32\drivers\etc\hosts

откройте свойства ярлыка, нажмите кнопку "Дополнительно" и выберите "Запуск от имени администратора".

После этого вы можете просто ввести хосты в меню "Пуск" и начать редактирование.

2

Я использовал (и до сих пор использую) HostAdmin неукоснительно, но необходимость очищать кэш или открывать новое окно инкогнито всегда было делом рутинным, поэтому в прошлом году я разработал расширение для Chrome для себя, чтобы помочь в подобной ситуации, и Недавно я опубликовал в Chrome Web Store очень грубую версию, которая называется LiveHosts.

Суть в том, что, хотя @JdeBP и прав, и настройка прокси будет правильным решением, это часто не вариант. Расширение Chrome не может точно воспроизвести то, что происходит, когда вы меняете файл хоста, поэтому LiveHosts делает прямо сейчас:

  • позволяет настроить несколько записей имени хоста /IP;
  • обнаруживать запросы к одному из определенных имен хостов;
  • перенаправить запрос на нужный IP с соответствующим заголовком HTTP Host;
  • добавьте в URL адресной строки визуальную (и некрасивую, я признаю) ссылку, которая будет выглядеть примерно так:http://127.0.0.1/www.example.com/whateverelse ;
  • разрешить разные пары хост /IP на разных вкладках одновременно.

Это не красиво, но достаточно для стандартного веб-разработчика, который пытается быстро переключаться между средами. Есть, конечно, несколько предостережений:

  • в зависимости от сервера части веб-страницы, ссылающиеся на URL сайта (например, атрибуты href и src), могут отличаться от оригинала;
  • window.location другое значение, которое может отбрасывать фрагменты JavaScript;
  • большинство запросов кросс-происхождения не будут работать.
0

Плагин Virtual Hosts - единственный, который работает для меня, как я и ожидал.

Доступ к виртуальным хостам сервера без необходимости перенаправления хоста или DNS.

-1

Попробуйте расширение DNS Overrider:

Using DNS Overrider you can replace hostname on the fly without access to 
system settings such as hosts file. DNS Overrider enables you to select what 
rules to apply via the extension settings page.

https://chrome.google.com/webstore/detail/dns-overrider/acmhaiiijfheggcaanjlgpampclpbnoh/

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