
Uso de las redirecciones y de los ReWrites
Los dos son una pequeña instrucción en un archivo .htaccess, aunque lo que hacen se parecen peligrosamente, no es lo mismo hacer un Redirect que un ReWrite. Veamos la diferencia, para saber cuando tenemos que usar uno o otro.
Como decía, ambos se escriben en el archivo .htaccess. Cualquier petición que se hace al servidor, pasa a través de este archivo. Eso quiere decir que cada vez que cargamos una página se pasa a través de este archivo varias veces; para leer el HTML, para cada hoja de estilos, para cada .js, e incluso para cada imágen (entre otras cosas).
Así pues, cada vez que introducimos una URL en el navegador, esta pasa por los filtros de las RewriteRules que tenemos en el -htaccess. Si "encaja" con las normas que le hemos establecido, el servidor "transforma" la URL. Eso no quiere decir que la redirija a otra página, sino que simplemente la transforma a otra URL. En el caso que quieras hacer eso, debes incorporar la flag [R]. Pero entonces... que lo diferencia de un Redirect?
El Redirect (o redirección 301), es una forma de decirle a Google que esa página se ha movido para siempre. Que ya no está ahí, que ahora siempre estará en otro lado, que este cambio será permanente, y que lo mejor será que a partir de ahora, vaya directamente siempre a la nueva dirección.
En cambio, en el caso de hacerlo con un ReWrite, simplemente le estamos "maquillando" la URL, para que sea más bonita y que se indexe mejor en los buscadores. O sea, que en lugar de algo del estilo "https://boluda.com/?p=423" la URL sea "https://boluda.com/servicios-seo". Mucho más descriptivo que un paramentro "p" asignando un código autonumerico.
Así pues, usaremos Redirect cuando simplemente hayamos cambiado nuestro contenido de sitio, y usaremos el ReWrite cuando queramos maquillar la URL. El uso del ReWrite como redirección (añadiendo la [R]) solamente se aplicaría en casos en los que queremos aplicar ciertas ReWriteRules especiales, ya que si simplemente es una redirección, no hace falta usarla.