Well, the basic rule of sliding collision (easy method I mean) is this:
Store last X and Z position. (LX and LZ)
If there is a collision on X,Z then
If there is a collision on LX,Z then Z=LZ
If there is a collision on X,LZ then X=LX
Endif
So find the collision, then on each axis, check it with the previous position on the opposite axis. If there is a collision on the X axis only, then LX,Z should be 0, but X,LZ will be 1. By affecting only 1 axis at a time, it should slide nicely as long as the actual position is never inside a collidable area.
Hope this helps.