I don't think that this has really been properly described here, so here it goes.
127.0.0.1 is a loopback address. It exists on all modern computer systems. Any traffic sent out of an interface with a destination of 127.0.0.1 is immediately received on the loopback interface of the same machine. That traffic never reaches the network.
Since you are listening only on the loopback interface, then the only machine that can ever get to your site is the one hosting the site. When other computers try and connect to 127.0.0.1, they are trying to connect to themselves. You see where the problem is now, I take it?
The concept is probably best illustrated with this drawing:
To solve your actual problem, you need to do two things.
- Listen on an address that other computers can contact. You have an normal IP of some sort. Use that instead of the 127.0.0.1.
- If you must use a named virtualhost (not required), then you will either need to add an entry in the hosts file of every computer contacting your machine, or you will need to add a DNS entry in your local DNS server(s) for
urs.local with an IP that is reachable. If you need to do this to more than one or two machines, use DNS. It's the right way™
tl;dr 127.0.0.1 is on an interface whose traffic never leaves the machine that it is connected to. It exists on every modern implementation of the TCP/IP stack. Telling other machines to connect to 127.0.0.1 is going to have them trying to connect to themselves, not your machine.