Wow, what is this? Some kind of rainbow table for BTC addresses? Please explain. Why is there only one address for each private key?
Directory.io is not a rainbow table nor is it an exploit or anything malicious. Their FAQ:
http://directory.io/faq pretty much explains what the website is. TL;DR it's satire and a joke. The private keys are real but you can't actually lookup the private key for an address and you can't actually search through all of the private keys in the lifetime of the universe.
Every single Bitcoin private key is just an integer from 1 to 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEBAAEDCE6AF48A03BBFD25E8CD0364140 (1.1579209 * 10^77 in decimal) inclusive. This means that technically, all private keys are known by everyone. However, there are so many private keys that finding one that has Bitcoin to spend is basically impossible, especially since private keys are generated randomly. With good random number generators, two people will never be able to generate the same private key simply because the keyspace is so unfathomably massive.
What directory.io does is they just figure out what number private keys the page you are looking at should be showing (as in which integers since a fixed number of keys fit per page) and displays those. They physically cannot have a database which stores all of the private keys and their respective addresses, it would be too computationally intensive to generate (and take way too long to do that) and the hard drive space for such a database is not available, it is too large. Furthermore, the odds of you stumbling upon a private key which has Bitcoin on it is extremely small too.