You're asking the wrong questions. Forget all about where your mouse points and index files and all of that nonsense.
ALWAYS start with the data model and think hard about what you are trying to represent in the database. Don't think about code until you have worked out the data side of things.
This is not easy; I worked on a Web directory project like this several years ago. It took weeks to adequately define the data model. Even simple questions like "what is a Web site?" turn out to be quite difficult. If you throw into the mix concepts such as Webmaster identities, reviews and reviewers, and contact information, it can get messy. My advice would be to keep it simple.
At every step in the process you should be VERY careful in how you use words, because you will confuse yourself when you use "directory" to mean three different things, as you did in your posting. (You have used "directory" to refer to Yahoo, to a classification, and to a component of a Unix-like filesystem and/or URI. An implementation may in fact use the latter to refer to the former, but they are NOT the same thing.)
A Web directory (in the Yahoo sense) is fundamentally an ontology or perhaps a taxonomy. Look up the meanings of those words and ponder.
An ontology is defined in metaphysics as "the nature and essential properties and relations of all beings," or in a computer-science context, "a body of knowledge about the world, hierarchically structured as a directed graph, or, more specifically, a tangled tree."
A taxonomy is defined as "classification of organisms in an ordered system that indicates natural relationships."
Can you see how this applies to building a Web directory?
Obviously Yahoo, et al, have done a lot of deep thinking about these issues and you can get a head start by looking at what they've done. Here are some hints:
Yahoo organizes Web sites (whatever that means) in categories. But in an abstract sense, a Web site and a category are special cases of the same thing (a node). This should tell you that it might be possible for them to share a table.
The relationships between one node and other nodes is a complex one -- think back to that "tangled tree" reference in the definition of ontology. It is not a simple parent-child relationship that would support an orderly tree. It is a many-to-many relationship. A Web site might fit into multiple categories. A category might fit into multiple supercategories. This provides another hint about your table structure, which will almost certainly require a node-to-node relational table.
Once you get the data model worked out in all of its detail and build the SQL tables that flow out of it, the rest is actually fairly simple, involving some PHP coding but not a lot of deep thinking. The real work is (and should be) upfront in the data side of things.