The last time I had this problem and troubleshooted it, I found that it was a bug to do with opening projects I had started in an earlier version of Logic, using a custom-built environment. The red slash btw, is called 'solo safe' and it locks the track in question into solo mode so it will be always heard, no matter what else is solo'd. So, it can be a useful thing (ie it's not just a flat out mistake), but of course it is very annoying when it just switches on for random tracks at random times.
When I looked into it, someone explained to me that what was most likely happening is that Logic now uses a different system to choose what will be the 'audition channel' for the sample editor and media browser etc. So there's now a bug which means that when you have a project that was built on an environment from an older version of Logic, it sometimes goes haywire and randomly decides that certain tracks are the 'audition track' which must always be in solo safe mode. Usually you don't even see the audition track because it's an environment object that isn't automatically displayed in your mixer. But in this case, Logic isn't sure that it has a permanent audition track, so it keeps trying to take one over.
One fix I recall being told was to create an audio object (ie an audio track) in the environment and assign it to audio channel 256 (or whatever number is the very last audio channel available). From memory, having an audio object that is the highest available audio channel number that merely exists in your project should make Logic automatically choose it as the audition channel, and it won't randomly solo safe other tracks anymore. But I didn't try this fix myself. For me, I chose to just create entirely new projects via using the selective import function, starting from a fresh Logic 9.1.1 template. After doing that, problem solved.