{"id":2712,"date":"2020-05-21T16:46:27","date_gmt":"2020-05-21T15:46:27","guid":{"rendered":"http:\/\/www.jmarior.net\/itank\/?p=2712"},"modified":"2020-05-21T17:05:09","modified_gmt":"2020-05-21T16:05:09","slug":"usar-apache-rewriterule-para-redirecciones","status":"publish","type":"post","link":"https:\/\/www.jmarior.net\/itank\/usar-apache-rewriterule-para-redirecciones\/","title":{"rendered":"Usar Apache RewriteRule para redirecciones"},"content":{"rendered":"<p><img loading=\"lazy\" decoding=\"async\" class=\"size-full wp-image-2714 aligncenter\" src=\"https:\/\/www.jmarior.net\/itank\/files\/apache-web-server-htaccess.png\" alt=\"\" width=\"320\" height=\"220\" \/><\/p>\n<p>Apunto c\u00f3mo hacer una redireccion http 301 con Apache2 sobre Ubuntu Server, para un caso simple y luego para mi caso particular.<br \/>\nQue conste que hay formas distintas de hacer esto e igualmente v\u00e1lidas, pero a mi es la que me ayud\u00f3 a ir migrando poco a poco ciertos contenidos a una nueva localizaci\u00f3n sin perder visitantes y con cierta trazabilidad.<\/p>\n<p>Asumimos que el servidor web apache2 tine habilitado el m\u00f3dulo mod_rewrite y si no es as\u00ed, lo activamos:<\/p>\n<p><code># a2enmod rewrite<br \/>\n# systemctl restart apache2<\/code><\/p>\n<p><strong>Caso 1:<\/strong> Supongamos que una galeria de fotos que resid\u00eda en<br \/>\n<code>  http:\/\/www.dominio.com\/galerias\/20200520-los-peques-en-la-playa<\/code><br \/>\nha cambiado a<br \/>\n<code> http:\/\/nuevodominio.net\/galerias\/20200520-los-peques-en-la-playa<\/code><\/p>\n<p>Para que los visitantes de la primera URL sean redirigidos automaticamente a la nueva creamos v\u00eda ftp o ssh un fichero <code>.htaccess<\/code> en el root de <code>www.dominio.com\/galerias\/<\/code> y a\u00f1adimos esta regla<\/p>\n<p><code><br \/>\nmod_rewrite<br \/>\nRewriteRule 20200520-los-peques-en-la-playa http:\/\/nuevodominio.net\/galerias\/20200520-los-peques-en-la-playa [R=301,L]<\/code><\/p>\n<p>El flag R=301 declara el tipo de redireccion como 301 Permanent y la L hace que no se procesen m\u00e1s reglas.<\/p>\n<p>tras practicar con el caso b\u00e1sico, pasamos a un caso un<\/p>\n<p><strong>Caso 2: Usando comodines y pasando el nombre del directorio origen al destino<\/strong><\/p>\n<p><code>RewriteRule ^20200520-(.*) http:\/\/nuevodominio.net\/galerias\/?pk-campaign=oldGaleries&amp;pk_kwd=$1 [R=301,L]<\/code><\/p>\n<p>El gorrito <code>^<\/code> representa cualquier car\u00e1cter y el <code>(.*)<\/code> enviar\u00e1 la parte de la url restante en el par\u00e1metro <code>$1<\/code><\/p>\n<p>lo que produce una URL destino <code>http:\/\/nuevodominio.net\/galerias\/?pk-campaign=oldGaleries&amp;pk_kwd=los-peques-en-la-playa<\/code><\/p>\n<p>Esto me ayuda a ir migrando progresivamente las galer\u00edas y saber en el CMS destino cual fue la galer\u00eda origen de la redirecci\u00f3n gracias a las campa\u00f1as de mi herramienta de anal\u00edtica web.<\/p>\n<p>La documentacion de Apache sobre el <a href=\"https:\/\/httpd.apache.org\/docs\/2.4\/mod\/mod_rewrite.html\">m\u00f3dulo rewrite (mod_rewrite)<\/a><\/p>\n","protected":false},"excerpt":{"rendered":"<p>Apunto c\u00f3mo hacer una redireccion http 301 con Apache2 sobre Ubuntu Server, para un caso simple y luego para mi caso particular. Que conste que hay formas distintas de hacer esto e igualmente v\u00e1lidas, pero a mi es la que me ayud\u00f3 a ir migrando poco a poco ciertos contenidos a una nueva localizaci\u00f3n sin [&hellip;]<\/p>\n","protected":false},"author":2,"featured_media":2714,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[5],"tags":[65,123,1858],"class_list":["post-2712","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-itank-ideas","tag-apache-http-server","tag-gnu-linux","tag-ubuntu-server"],"views":323,"_links":{"self":[{"href":"https:\/\/www.jmarior.net\/itank\/wp-json\/wp\/v2\/posts\/2712","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.jmarior.net\/itank\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.jmarior.net\/itank\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.jmarior.net\/itank\/wp-json\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"https:\/\/www.jmarior.net\/itank\/wp-json\/wp\/v2\/comments?post=2712"}],"version-history":[{"count":0,"href":"https:\/\/www.jmarior.net\/itank\/wp-json\/wp\/v2\/posts\/2712\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.jmarior.net\/itank\/wp-json\/wp\/v2\/media\/2714"}],"wp:attachment":[{"href":"https:\/\/www.jmarior.net\/itank\/wp-json\/wp\/v2\/media?parent=2712"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.jmarior.net\/itank\/wp-json\/wp\/v2\/categories?post=2712"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.jmarior.net\/itank\/wp-json\/wp\/v2\/tags?post=2712"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}