Server Fault is a question and answer site for system and network administrators. Join them; it only takes a minute:

Sign up
Here's how it works:
  1. Anybody can ask a question
  2. Anybody can answer
  3. The best answers are voted up and rise to the top

I want to configure the Windows hosts file to send host requests based on IP address + ports.

For example:

Because I have Apache listening on port 8080 and IIS on port 80 (default).

So, I think the best way to do this is to modify the hosts file. It's not affecting anything. Neither I am getting any error nor any message.

share|improve this question

migrated from Feb 22 '10 at 5:46

This question came from our site for professional and enthusiast programmers.

You'll get a better response asking this sort of question on – Carl Norum Feb 21 '10 at 18:20
Why can't you just launch and in your browser? – Yvan Sep 4 '14 at 12:00

You can't. The hosts file is just that -- hosts. It's the equivalent of a "short-circuited" DNS within your local machine. DNS can't send you to ports, either.

To achieve what you're trying to do, you would want to set up virtual hosting under IIS or Apache, and use that (based on the HTTP Host: header) to let the service decide which site to present. This won't help you, though, if you want to be doing this with both IIS and Apache simultaneously.

share|improve this answer
could you be please clear, i didnt understand about virtual hosting. How can i do the virtual hosting? – SIA Feb 21 '10 at 18:43

No, you can't. If it's not working, then something else is going wrong.

I assume this is for a development box?

DNS will resolve and to localhost as long as you're not doing something like proxying your DNS queries. You should probably ask over at ServerFault for webserver configuration help, that's the most likely issue.

share|improve this answer
Thanks for the help!!! But there is no way??? Then how can i run iis and apache parallelly with different ports – SIA Feb 21 '10 at 18:41
They're still going to the same address, the port doesn't even factor into what hosts does. The port will still work, you can run them in parallel. – Xorlev Feb 21 '10 at 19:05

You can do that with Fiddler. With Fiddler script, you can many amazing things.

If you set hosts like this    # Port 80  # Port 8080

Add this in CustomRules.js(to open CustomRules.js, choose Customize Rules on Fiddler's Rules menu)

// this method is already exist
static function OnBeforeRequest(oSession: Session) {  
    if ( == "") = "";

Then Fiddler convert the host, and you'll connect to port 8080.

share|improve this answer

Are you using the servers only for local development? If so, you could put your Apache to listen to and redirect that with the hosts file to the domain name you like.

share|improve this answer

As with the other answers host file doesn't have port information but you can have a page that redirects biased upon the header like apache or IIS would do for name based virtual hosting. Check the header and redirect as needed. However I don't really see the value in this as you are reinventing the wheel. Apache supports port based virtual hosting and I assume that iis does.

Is your goal to have a development machine with both running our is this for a production situation.

share|improve this answer

Follow these steps:

Install Fiddler2

Navigate to Fiddler2 menu:- Tools > HOSTS.. (Click to select)

Add a line like this:-


Save the file & then checkout in browser.

share|improve this answer

This is what you can do, it would be helpful for local development only.

hosts file:


In IIS, create new website and for &

IIS Setup

  • IP Address : All Unassigned (it would use local host or any other available ip)
  • Port : any other than already in use (81,82,83 and so on. 80 is already in use by Default Website)
  • Host Name : Leave it blank

You are good to go. Just make sure ports you have used are not in use by some other process & are also open from firewall, antivirus etc.

After this you can use following urls for accessing websites from local machine or from LAN.

share|improve this answer

Your Answer


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