I am making a 2D platformer type of game. In this platformer there are both the player and “enemies”. The problem arises because:
I need both enemies and players to collide with the ground so they don’t fall through it.
I need to detect when a player collides with an enemy so i can register damage.
I need the player to be able to walk through an enemy.
Having colliders on the feet is not an option because the player may interact with it.
What is the best way to approach this kind of specific collision detection?

You could use the Layer Collision Matrix from Edit > Project Settings > Physics 2D
1-Assign Your GameObjects Specific Layers
From There Just specify How this layers Response To Eachother.