Foros del Web » Creando para Internet » Sistemas de gestión de contenidos » WordPress »

Redireccionar wp-uploads de un blog a un multisitio

Estas en el tema de Redireccionar wp-uploads de un blog a un multisitio en el foro de WordPress en Foros del Web. Hola. Estoy integrando algunos blogs sencilos a un nuevo multisitio con dominios de primer nivel. Todo va perfecto excepto que no encuentro el modo de ...
  #1 (permalink)  
Antiguo 29/11/2014, 06:33
Avatar de zanguanga
Moderadora
 
Fecha de Ingreso: julio-2009
Ubicación: España
Mensajes: 1.686
Antigüedad: 15 años, 4 meses
Puntos: 429
Redireccionar wp-uploads de un blog a un multisitio

Hola. Estoy integrando algunos blogs sencilos a un nuevo multisitio con dominios de primer nivel. Todo va perfecto excepto que no encuentro el modo de redireccionar los archivos del antiguo directorio /wp-uploads/ al nuevo directorio /wp-uploads/sites/3/ para evitar errores 404 provocados por buscadores que ya tienen indexadas estas imágenes.

Si es el blog principal no hay problema, valdría con poner algo como esto en .htaccess

Código:
Redirect /wp-content/uploads/ http://www.dominio.com/wp-content/uploads/sites/3/
pero al tratarse de sitios secundarios no puedo usarlo. He probado varias fórmulas distintas pero no consigo solucionarlo. Generalmente obtengo un error 500 ¿Alguna idea?
__________________
Mi blog personal | Mi G+
  #2 (permalink)  
Antiguo 29/11/2014, 12:27
Avatar de ArturoGallegos
Moderador
 
Fecha de Ingreso: febrero-2008
Ubicación: Morelia, México
Mensajes: 6.774
Antigüedad: 16 años, 8 meses
Puntos: 1146
Respuesta: Redireccionar wp-uploads de un blog a un multisitio

Yo no conozco mucho de multisitio por lo que no se como estén las url

pero ya intentaste con mod_rewrite y expresiones regulares?
  #3 (permalink)  
Antiguo 30/11/2014, 13:23
Avatar de metacortex
Viejo demente
 
Fecha de Ingreso: junio-2004
Ubicación: Caracas - Venezuela
Mensajes: 9.027
Antigüedad: 20 años, 5 meses
Puntos: 832
Respuesta: Redireccionar wp-uploads de un blog a un multisitio

Intenta esto zanguanga: https://wordpress.org/support/topic/...-for-multisite
  #4 (permalink)  
Antiguo 30/11/2014, 19:43
Avatar de zanguanga
Moderadora
 
Fecha de Ingreso: julio-2009
Ubicación: España
Mensajes: 1.686
Antigüedad: 15 años, 4 meses
Puntos: 429
Respuesta: Redireccionar wp-uploads de un blog a un multisitio

Gracias ArturoGallegos, algo he intentado pero me pierdo totalmente. He probado con %{HTTP_HOST} y con %{HTTP_REFERER} pero nada, si pongo la url antigua me devuelve error 500. Lo último que he probado, sin resultado tampoco, ha sido algo así:

Código codigo:
Ver original
  1. RewriteEngine On
  2. RewriteCond   %{REQUEST_URI}   ^dominio3\.com\/wp-content\/uplauds\/$   [NC]
  3. RewriteRule   ^/?$   "http\:\/\/www\.dominio3\.com\/wp-content\/uploads\/sites\/3\/$1   [R=301,L]

Gracias metacortex, creo que eso ya lo había probado anteriormente, pero acabo de probarlo de nuevo y tampoco me va ninguna de las dos soluciones que dan allí.

EDITO:
Ahora no me da error 500 y las antiguas urls de las imágenes redirigen bien pero me causa un problema casi mayor, si intentas abrir una, se crea este bucle:

Código url:
Ver original
  1. http://www.dominio.com/wp-content/uploads/sites/3/sites/3/sites/3/sites/3/sites/3/sites/3/sites/3/sites/3/sites/3/sites/3/sites/3/sites/3/sites/3/sites/3/sites/3/sites/3/sites/3/sites/3/sites/3/sites/3/sites/3/2012/05/imagen.jpg

El código usado ha sido este
Código codigo:
Ver original
  1. RedirectMatch 301 /wp-content/uploads/(.*)$ /wp-content/uploads/sites/3/$1

No sé solucionarlo. Debería redirigir varios dominios a sus respectivos directorios.

Código HTML:
Ver original
  1. http://www.dominio1.com/wp-content/uploads/  a  http://www.dominio1.com/wp-content/uploads/site/1/
  2. http://www.dominio2.com/wp-content/uploads/  a  http://www.dominio2.com/wp-content/uploads/site/2/
y así sucesivamente. O bien usar el dominio principal, pero no me convence tampoco.

Código HTML:
Ver original
  1. http://www.dominio1.com/wp-content/uploads/  a  http://www.dominio-principal.com/wp-content/uploads/site/1/
  2. http://www.dominio2.com/wp-content/uploads/  a  http://www.dominio-principal.com/wp-content/uploads/site/2/

Para ver si me iluminaba con alguna idea me he fijado también en como guarda wordpress.com los archivos de cada sitio, pero tampoco me ha servido. Sin embargo, como curiosidad, me he dado cuenta de que cambian la ruta por defecto. Por ejemplo, si el blog es zanguanga.wordpress.com las imagenes las guardan en zanguanga.files.wordpress.com/YYYY/MM/

En fin, que estoy más perdida en esto que un husky en el desierto
__________________
Mi blog personal | Mi G+

Última edición por zanguanga; 30/11/2014 a las 21:49
  #5 (permalink)  
Antiguo 01/12/2014, 22:40
Avatar de ArturoGallegos
Moderador
 
Fecha de Ingreso: febrero-2008
Ubicación: Morelia, México
Mensajes: 6.774
Antigüedad: 16 años, 8 meses
Puntos: 1146
Respuesta: Redireccionar wp-uploads de un blog a un multisitio

Prueba con
Cita:
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_URI} !^/wp-content/uploads
RewriteRule . /index.php [L]

RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_URI} ^/wp-content/uploads
RewriteRule ^wp-content/uploads/(.*)$ wp-content/uploads/2/$1 [R=301,L]
</IfModule>
esta linea le dice que para esa regla no se consideren las url que empiecen con
RewriteCond %{REQUEST_URI} !^/wp-content/uploads

En la url no se considera el nombre de dominio como parte de esta, para este caso.

Ya el resto de lo que añado dice que sobre escriba la url en caso de ser la carpeta upload y que dicho archivo no exista, en caso de existir no es necesaria la re-dirección y se evita para no entrar en un bucle.

resaltese que la url en tu navegador no cambiara... este seguirá mostrando
http://dominio.com/wp-content/upload.../11/imagen.png
  #6 (permalink)  
Antiguo 02/12/2014, 03:04
Avatar de zanguanga
Moderadora
 
Fecha de Ingreso: julio-2009
Ubicación: España
Mensajes: 1.686
Antigüedad: 15 años, 4 meses
Puntos: 429
Respuesta: Redireccionar wp-uploads de un blog a un multisitio

Muchas gracias Arturo, quizá esté haciendo mal alguna otra cosa, el caso es que si pongo ese código antes del de WordPress me devuelve un bucle

Código :
Ver original
  1. http://www.dominio.com/wp-content/uploads/2/2/2/2/2/2/2/2/2/2/2/2/2/2/2/2/2/2/2/2/YYYY/MM/imagen.jpg

y si lo pongo después, me devuelve de nuevo error 500
Creo que al final voy a tener que eliminar esas urls antiguas a mano en Google Webmasters


Ayer maté varias veces el apache con redirecciones mal hechas, XD. Las pruebas las estoy haciendo con algunos de mis blogs personales, he pasado varios a multisitio para tener menos instalaciones de WP que mantener y menos cuentas de cPanel en el VPS.
__________________
Mi blog personal | Mi G+
  #7 (permalink)  
Antiguo 02/12/2014, 05:08
Avatar de ArturoGallegos
Moderador
 
Fecha de Ingreso: febrero-2008
Ubicación: Morelia, México
Mensajes: 6.774
Antigüedad: 16 años, 8 meses
Puntos: 1146
Respuesta: Redireccionar wp-uploads de un blog a un multisitio

No se si lo notaste o no, pero tal vez el problema (casi seguro que si)... en la url de destino yo coloque a modo de ejemplo
wp-content/uploads/2/ + url antigua

el formato que tu mencionaste era
wp-content/uploads/site/2/ + url antigua


Si tu usaste mi formato en lugar de ajustarlo al tuyo, la url de destino jamas coincidirá por lo que no encontrara el archivo.
en el código use esta linea para evitar un bucle, pero es para que no re-direccione si el archivo buscado es encontrado.
RewriteCond %{REQUEST_FILENAME} !-f

básicamente lo que dice es, re-direcciona siempre que el archivo buscado no exista y sea en el folder wp-content/uploads.

Pero no cai en cuenta que si no existe volverá a intentar re-direccionar agregando /2/ de forma infinita, por lo que el servidor marca error.

Fue un error de mi lógica, te agrego una nueva linea que evitara el bucle infinito, solo permitirá se re-direccione una vez encuentre o no el archivo.

Cita:
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_URI} ^/wp-content/uploads
RewriteCond %{REQUEST_URI} !^/wp-content/uploads/2/
RewriteRule ^wp-content/uploads/(.*)$ wp-content/uploads/2/$1 [R=301,L]
revisa la logica no me falte algo

linea 1 .- si el archivo no existe
linea 2 .- el archivo buscado esta en el folder ^/wp-content/uploads
linea 3 .- el archivo buscado NO es en el folder !^/wp-content/uploads/2/
linea 4 .- ejecuta la redireccion.
  #8 (permalink)  
Antiguo 02/12/2014, 16:37
Avatar de zanguanga
Moderadora
 
Fecha de Ingreso: julio-2009
Ubicación: España
Mensajes: 1.686
Antigüedad: 15 años, 4 meses
Puntos: 429
Respuesta: Redireccionar wp-uploads de un blog a un multisitio

Aggg, tontarra de mí, no, no me percibí, mil gracias.

Lo probaré, aunque tendré que adaptarlo aún más para redirigir el resto de sitios, el 3, el 4, etc. Porque cada dominio debe redirigir a un número diferente, pero todas la rutas originales son iguales /wp-content/uploads/ ¿Puedo poner delante cada dominio o romperé de nuevo el apache?.

Bueno en cuanto tenga un rato pruebo y comento si logro avanzar algo. Me ha parecido rarísimo no encontrar ninguna documentación al respecto, supongo que a más de uno ha debido pasarle lo mismo
__________________
Mi blog personal | Mi G+
  #9 (permalink)  
Antiguo 03/12/2014, 09:25
Avatar de ArturoGallegos
Moderador
 
Fecha de Ingreso: febrero-2008
Ubicación: Morelia, México
Mensajes: 6.774
Antigüedad: 16 años, 8 meses
Puntos: 1146
Respuesta: Redireccionar wp-uploads de un blog a un multisitio

Supongo que si le a pasado a mas de uno pero se han ido por otro lado, yo realmente no he trabajado mucho con multisite...

Al decir que puedes poner delante cada dominio a que te refieres?

Otro método que he probado satisfactoriamente es una re-dirección 301 con PHP, he visto que wordpress almacena unas constantes en el archivo config al crear el multisitio, en concreto estas
Código PHP:
Ver original
  1. define('SITE_ID_CURRENT_SITE', 1);
  2. define('BLOG_ID_CURRENT_SITE', 1);

No se si siempre tengan el mismo #ID pero si es asi y este tiene relación con la ruta de destino que intentas ajustar, quizás te sea mas fácil usar PHP para hacer la re-dirección 301... de esa forma con un simple plugin que lea esos valores te serviría para todos los dominios.

Para ejecutar una dirección 301 con php en wordpress usa una función y la invocas con
Código PHP:
Ver original
  1. add_action('init','redirect_url_404_301',1);
  #10 (permalink)  
Antiguo 03/12/2014, 10:33
Avatar de metacortex
Viejo demente
 
Fecha de Ingreso: junio-2004
Ubicación: Caracas - Venezuela
Mensajes: 9.027
Antigüedad: 20 años, 5 meses
Puntos: 832
Respuesta: Redireccionar wp-uploads de un blog a un multisitio

A lo largo de este hilo he aprendido un par de cosas nuevas con ArturoGallegos :D
  #11 (permalink)  
Antiguo 03/12/2014, 11:38
Avatar de zanguanga
Moderadora
 
Fecha de Ingreso: julio-2009
Ubicación: España
Mensajes: 1.686
Antigüedad: 15 años, 4 meses
Puntos: 429
Respuesta: Redireccionar wp-uploads de un blog a un multisitio

Yo siempre aprendo con ArturoGallegos, lástima que en algunas disciplinas tengo tan poco nivel que no alcanzo a aprovecharlo lo suficiente
__________________
Mi blog personal | Mi G+
  #12 (permalink)  
Antiguo 03/12/2014, 13:07
Avatar de metacortex
Viejo demente
 
Fecha de Ingreso: junio-2004
Ubicación: Caracas - Venezuela
Mensajes: 9.027
Antigüedad: 20 años, 5 meses
Puntos: 832
Respuesta: Redireccionar wp-uploads de un blog a un multisitio

Cita:
Iniciado por zanguanga Ver Mensaje
Yo siempre aprendo con ArturoGallegos, lástima que en algunas disciplinas tengo tan poco nivel que no alcanzo a aprovecharlo lo suficiente
Tú tienes tus buenos talentos y muchos sabemos cuáles son. Un beso.

Etiquetas: blog, redireccionar
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 21:07.