I had the same problem with one of my old maps. What I did was, turn the open/close triggers off when an enemy unit enters a region just behind the gate. Because that would mean they have breached it.
What might also work is to have a boolean variable. Set this boolean to ''True'' when a player opens the gate. Then when someone wants to close it, check if the boolean is ''True''.
Now, when the gate is actually destroyed, the boolean will not be set to ''True'', so players won't be able to close it again.