Take the 2-minute tour ×
Super User is a question and answer site for computer enthusiasts and power users. It's 100% free, no registration required.

How can I set up Chrome to reference hostname lookups locally and not from the standard etc/hosts file?

When debugging a website, it's sometimes useful to set up entries in C:\Windows\system32\drivers\etc\hosts that replace certain domains with localhost, thus allowing me to test out on-the-fly versions of websites or domains that may conflict with live actual sites.

Can I set up Google Chrome in a way that simulates and simplifies this process?

I won't to modify the browser instance to behave as if etc/hosts has been modified although even that might be too much of a security risk in an extension.

share|improve this question

2 Answers 2

One way to achieve your actual goal does not involve Chrome extensions, or even Chrome, at all. That way is to set up an intelligent proxy HTTP server, point Chrome at it, and then add rewriting rules to the proxy server that rewrite URLs under the covers.

There are many people who do this, with various different proxy HTTP servers — too many to cover each in detail in an answer here. They do so for purposes of zapping advertisements, web bugs, and suchlike, but the principle and the mechanism are identical to what you want to do. They want the WWW browser to fetch a particular URL as normal, but the actual content that it receives to be that of some other (local or otherwise) URL. The only thing that the WWW browser needs to know is that it talks to Internet via a proxy server.

For one example, see the Ad Zapper at SourceForge. That's a Perl script that works in conjunction with the Squid proxy HTTP server to rewrite URLs on the fly in the proxy server. As you can see from its configuration database, people have employed its mechanism for a wide range of purposes, from ensuring that one always sees the "printable" forms of articles on news services to getting rid of the randomized advertising redirections on Internet pornography sites.

Note that this is far better than what you are doing with the hosts file, which is an unsuitable mechanism for manipulating WWW service. hosts only deals in name→address lookups, mucks up everything else (outwith the WWW browser) that needs to do name→address lookups, and (as you probably know already) requires every rewritten host name to be additionally set up as a virtual host on the target content HTTP server. A rewriting proxy HTTP server of this sort, in contrast, deals in URLs and only affects HTTP and the WWW browsers configured to use it in the first place. So it can do things like only rewrite the JavaScript URLs and leave everything else from the same WWW site alone; rewrite a whole load of hostnames to just one; and do (yet further) pattern matching. (There are instances of this very thing in Ad Zapper's configuration database, notice.) And one can do things like have one WWW browser viewing the world through the rewriting proxy and another viewing it directly, on a single machine simultaneously.

share|improve this answer
    
One additional benefit over a chrome extension - it works cross browsers! Right now I'm still using the hosts file, but I'll consider switching to a proxy if the actual need arises. –  ripper234 Oct 6 '11 at 13:26

Try the extension 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/

share|improve this answer

Your Answer

 
discard

By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.