Déjanos ver el valor de REQUEST_URI y qué quieres lograr con los condicionales para saber por qué no obtienes lo que esperas.
Yo creo que no estás usando $_SERVER['REQUEST_URI'] como deberías.
Si lees la documentación de PHP respecto a strpos, dice lo siguiente
Cita: Encuentra la posición numérica de la primera ocurrencia del needle (aguja) en el string haystack (pajar).
Eso quiere decir, que en un ambiente web común y con tu código lo que estás diciendo al intérprete de PHP cuando llega a los condicionales es algo como lo siguiente:
Cita: Si encuentras la ocurrencia 'blog' entonces imprime esto.
Si encuentras la ocurrencia '/blog' entonces imprime esto también.
Es decir, que te has dado cuenta de que puede no imprimir nada, puede imprimir uno o puede imprimir los dos, por eso quieres rectificar con if-elseif.
Eso está bien, pero se te olvida, que los if-elseif son condicionales, eso significa que el intérprete comienza a leer jerárquicamente de arriba hacia abajo por el if, si no se cumple continúa al elseif inmediato, si tampoco se cumple puedes crear otro elseif o un else en caso de que ninguno se cumpla.
Yendo más atrás ¿para qué regular con PHP el CSS cargado si el CSS se "auto-regula" al ser utilizado por la aparición de HTML?
Y no solo eso, como cabe la posibilidad de que se encuentren ambas posiciones, un usuario podría romper la lógica cambiando el orden de la URL; y además, que el usuario puede introducir en el navegador 'Blog' o '/Blog', por ello deberías utilizar stripos en vez de strpos.
En definitiva, creo que te estás complicando sin tener por qué, simplemente carga los dos css, y deja que cada etiqueta HTML utilice el CSS con los estilos y clases que le correspondan.