{"id":999,"date":"2016-06-28T17:08:53","date_gmt":"2016-06-28T16:08:53","guid":{"rendered":"http:\/\/www.kumbiaphp.com\/blog\/?p=999"},"modified":"2017-12-22T11:59:08","modified_gmt":"2017-12-22T10:59:08","slug":"hacer-un-redireccionamiento-de-enlaces-antiguos","status":"publish","type":"post","link":"https:\/\/kumbiaphp.com\/blog\/2016\/06\/28\/hacer-un-redireccionamiento-de-enlaces-antiguos\/","title":{"rendered":"Hacer un redireccionamiento de enlaces antiguos"},"content":{"rendered":"<p>Recientemente he actualizado una web pas\u00e1ndola de un viejo y lento joomla, a un potente y veloc\u00edsimo kumbiaphp. En el cambio me he visto inmerso en 3 graves problemas:<\/p>\n<ol>\n<li>Base de datos muy grande y algo lenta.<\/li>\n<li>Much\u00edsimas visitas.<\/li>\n<li>Art\u00edculos con escritura de la URL \u201cdiferente\u201d<i class=\"copy_only\"><\/i><\/li>\n<\/ol>\n<p>El problema 1 y 2 se soluciono muy f\u00e1cilmente usando la cache (de la cual hablar\u00e9 pr\u00f3ximamente en un post especifico dedicado a ello), pero lo verdaderamente sorprendente por su sencillez y simplicidad es como reconstruir las URL antiguas para que funcione con el nuevo dise\u00f1o de url\/rutas.<\/p>\n<p>Al principio imagin\u00e9 que la forma m\u00e1s sencilla de hacerlo ser\u00eda mediante reglas en el htaccess. Despu\u00e9s pens\u00e9 en modificar el router del core para que funcionase como yo quer\u00eda, pero al final result\u00f3 much\u00edsimo m\u00e1s sencillo: <strong><em>redireccionamiento desde la vista 404.<\/em><\/strong><\/p>\n<p>Si estamos con el sitio en PRODUCCION, cuando una URL de nuestro sitio no existe, kumbia lanzar\u00e1 la vista 404.phtml para informarnos del error. Es all\u00ed, mediante unas simples validaciones donde podremos comprobar la URL que falla, analizarla y ver si tenemos que redirigirla a la URL correcta mediante un redireccionamiento 301 (P\u00e1gina movida permanentemente) o si por el contrario es un error 404 leg\u00edtimo.<\/p>\n<p>Ventajas:<\/p>\n<ol>\n<li>F\u00e1cil manejo desde PHP<\/li>\n<li>Independiente del servidor<\/li>\n<li>M\u00e1s velocidad (s\u00f3lo necesita validar si no existe la URL y no en cada Request)<\/li>\n<\/ol>\n<p>Os dejo el c\u00f3digo que me sirvi\u00f3 a mi, tanto cuando las urls correspond\u00edan con un patr\u00f3n fijo, como para otras URL est\u00e1ticas que tienen su correspondiente nueva URL. Tambi\u00e9n pod\u00e9is crear una clase para manejar vuestras redirecciones.<\/p>\n<pre><code class=\"language-php\" data-line=\"\">\n&lt;?php\n   \/\/ views\/_shared\/errors\/404.phtml\n   $buscar = filter_var(Router::get(&#039;route&#039;), FILTER_SANITIZE_STRING);\n\n   $correspondecias = array(\n   &quot;\/jprovincia.html&quot; =&gt; &quot;provincia&quot;,\n   &quot;\/portada.html&quot; =&gt; &quot;portada&quot;,\n   &quot;\/jopinion.html&quot; =&gt; &quot;jopinion&quot;,\n   &quot;\/region.html&quot; =&gt; &quot;region&quot;,\n   &quot;\/local.html&quot; =&gt; &quot;local&quot;,\n   &quot;\/jsociedad.html&quot; =&gt; &quot;sociedadcultura&quot;,\n   &quot;\/deportes.html&quot; =&gt; &quot;deportes&quot;\n   );\n\n   if(isset($correpondencias[$buscar])) {\n       Redirect::to(&quot;secciones\/&quot;.$correspondecias[$buscar], 0, 301);\n       exit();\n   }\n\n   $articulo = (new Articulos)-&gt;find_first(&quot;urlantigua = &#039;$buscar&#039;&quot;);\n   if($articulo) {\n      Redirect::to(&quot;articulos\/$articulo-&gt;slug&quot;, 0, 301);\n      exit();\n   }\n\/\/ continuar con la vista 404\n?&gt;\n<\/code><\/pre>\n","protected":false},"excerpt":{"rendered":"<p>Recientemente he actualizado una web pas\u00e1ndola de un viejo y lento joomla, a un potente y veloc\u00edsimo kumbiaphp. En&hellip;<\/p>\n","protected":false},"author":13,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_crdt_document":"","inline_featured_image":false,"_monsterinsights_skip_tracking":false,"_monsterinsights_sitenote_active":false,"_monsterinsights_sitenote_note":"","_monsterinsights_sitenote_category":0,"_jetpack_memberships_contains_paid_content":false,"footnotes":""},"categories":[1],"tags":[112],"class_list":["post-999","post","type-post","status-publish","format-standard","hentry","category-php","tag-redirect"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v27.4 - https:\/\/yoast.com\/product\/yoast-seo-wordpress\/ -->\n<title>Hacer un redireccionamiento de enlaces antiguos - KumbiaPHP Framework PHP en espa\u00f1ol<\/title>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/kumbiaphp.com\/blog\/2016\/06\/28\/hacer-un-redireccionamiento-de-enlaces-antiguos\/\" \/>\n<meta property=\"og:locale\" content=\"es_ES\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Hacer un redireccionamiento de enlaces antiguos - KumbiaPHP Framework PHP en espa\u00f1ol\" \/>\n<meta property=\"og:description\" content=\"Recientemente he actualizado una web pas\u00e1ndola de un viejo y lento joomla, a un potente y veloc\u00edsimo kumbiaphp. En&hellip;\" \/>\n<meta property=\"og:url\" content=\"https:\/\/kumbiaphp.com\/blog\/2016\/06\/28\/hacer-un-redireccionamiento-de-enlaces-antiguos\/\" \/>\n<meta property=\"og:site_name\" content=\"KumbiaPHP Framework PHP en espa\u00f1ol\" \/>\n<meta property=\"article:publisher\" content=\"https:\/\/www.facebook.com\/kumbia.fw\" \/>\n<meta property=\"article:published_time\" content=\"2016-06-28T16:08:53+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2017-12-22T10:59:08+00:00\" \/>\n<meta name=\"author\" content=\"HenryMalas\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:creator\" content=\"@kumbiaphp\" \/>\n<meta name=\"twitter:site\" content=\"@kumbiaphp\" \/>\n<meta name=\"twitter:label1\" content=\"Escrito por\" \/>\n\t<meta name=\"twitter:data1\" content=\"HenryMalas\" \/>\n\t<meta name=\"twitter:label2\" content=\"Tiempo de lectura\" \/>\n\t<meta name=\"twitter:data2\" content=\"2 minutos\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\\\/\\\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\\\/\\\/kumbiaphp.com\\\/blog\\\/2016\\\/06\\\/28\\\/hacer-un-redireccionamiento-de-enlaces-antiguos\\\/#article\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/kumbiaphp.com\\\/blog\\\/2016\\\/06\\\/28\\\/hacer-un-redireccionamiento-de-enlaces-antiguos\\\/\"},\"author\":{\"name\":\"HenryMalas\",\"@id\":\"https:\\\/\\\/kumbiaphp.com\\\/blog\\\/#\\\/schema\\\/person\\\/c403e9e87939c1c0f5e5b1e766d82730\"},\"headline\":\"Hacer un redireccionamiento de enlaces antiguos\",\"datePublished\":\"2016-06-28T16:08:53+00:00\",\"dateModified\":\"2017-12-22T10:59:08+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\\\/\\\/kumbiaphp.com\\\/blog\\\/2016\\\/06\\\/28\\\/hacer-un-redireccionamiento-de-enlaces-antiguos\\\/\"},\"wordCount\":287,\"commentCount\":0,\"publisher\":{\"@id\":\"https:\\\/\\\/kumbiaphp.com\\\/blog\\\/#organization\"},\"keywords\":[\"Redirect\"],\"articleSection\":[\"PHP\"],\"inLanguage\":\"es\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\\\/\\\/kumbiaphp.com\\\/blog\\\/2016\\\/06\\\/28\\\/hacer-un-redireccionamiento-de-enlaces-antiguos\\\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/kumbiaphp.com\\\/blog\\\/2016\\\/06\\\/28\\\/hacer-un-redireccionamiento-de-enlaces-antiguos\\\/\",\"url\":\"https:\\\/\\\/kumbiaphp.com\\\/blog\\\/2016\\\/06\\\/28\\\/hacer-un-redireccionamiento-de-enlaces-antiguos\\\/\",\"name\":\"Hacer un redireccionamiento de enlaces antiguos - KumbiaPHP Framework PHP en espa\u00f1ol\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/kumbiaphp.com\\\/blog\\\/#website\"},\"datePublished\":\"2016-06-28T16:08:53+00:00\",\"dateModified\":\"2017-12-22T10:59:08+00:00\",\"breadcrumb\":{\"@id\":\"https:\\\/\\\/kumbiaphp.com\\\/blog\\\/2016\\\/06\\\/28\\\/hacer-un-redireccionamiento-de-enlaces-antiguos\\\/#breadcrumb\"},\"inLanguage\":\"es\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\\\/\\\/kumbiaphp.com\\\/blog\\\/2016\\\/06\\\/28\\\/hacer-un-redireccionamiento-de-enlaces-antiguos\\\/\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/kumbiaphp.com\\\/blog\\\/2016\\\/06\\\/28\\\/hacer-un-redireccionamiento-de-enlaces-antiguos\\\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Portada\",\"item\":\"https:\\\/\\\/kumbiaphp.com\\\/blog\\\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Hacer un redireccionamiento de enlaces antiguos\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\\\/\\\/kumbiaphp.com\\\/blog\\\/#website\",\"url\":\"https:\\\/\\\/kumbiaphp.com\\\/blog\\\/\",\"name\":\"KumbiaPHP Framework PHP en espa\u00f1ol\",\"description\":\"Web &amp; app MVC PHP framework\",\"publisher\":{\"@id\":\"https:\\\/\\\/kumbiaphp.com\\\/blog\\\/#organization\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\\\/\\\/kumbiaphp.com\\\/blog\\\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"es\"},{\"@type\":\"Organization\",\"@id\":\"https:\\\/\\\/kumbiaphp.com\\\/blog\\\/#organization\",\"name\":\"KumbiaPHP Framework PHP en espa\u00f1ol\",\"url\":\"https:\\\/\\\/kumbiaphp.com\\\/blog\\\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"es\",\"@id\":\"https:\\\/\\\/kumbiaphp.com\\\/blog\\\/#\\\/schema\\\/logo\\\/image\\\/\",\"url\":\"https:\\\/\\\/kumbiaphp.com\\\/blog\\\/wp-content\\\/uploads\\\/2015\\\/02\\\/logo.png\",\"contentUrl\":\"https:\\\/\\\/kumbiaphp.com\\\/blog\\\/wp-content\\\/uploads\\\/2015\\\/02\\\/logo.png\",\"width\":432,\"height\":50,\"caption\":\"KumbiaPHP Framework PHP en espa\u00f1ol\"},\"image\":{\"@id\":\"https:\\\/\\\/kumbiaphp.com\\\/blog\\\/#\\\/schema\\\/logo\\\/image\\\/\"},\"sameAs\":[\"https:\\\/\\\/www.facebook.com\\\/kumbia.fw\",\"https:\\\/\\\/x.com\\\/kumbiaphp\"]},{\"@type\":\"Person\",\"@id\":\"https:\\\/\\\/kumbiaphp.com\\\/blog\\\/#\\\/schema\\\/person\\\/c403e9e87939c1c0f5e5b1e766d82730\",\"name\":\"HenryMalas\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"es\",\"@id\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/164ab2d5b5385076310524425a65607eb9905830c08efde39eedfef216d2323e?s=96&d=mm&r=g\",\"url\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/164ab2d5b5385076310524425a65607eb9905830c08efde39eedfef216d2323e?s=96&d=mm&r=g\",\"contentUrl\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/164ab2d5b5385076310524425a65607eb9905830c08efde39eedfef216d2323e?s=96&d=mm&r=g\",\"caption\":\"HenryMalas\"},\"url\":\"https:\\\/\\\/kumbiaphp.com\\\/blog\\\/author\\\/henrymalas\\\/\"}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"Hacer un redireccionamiento de enlaces antiguos - KumbiaPHP Framework PHP en espa\u00f1ol","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/kumbiaphp.com\/blog\/2016\/06\/28\/hacer-un-redireccionamiento-de-enlaces-antiguos\/","og_locale":"es_ES","og_type":"article","og_title":"Hacer un redireccionamiento de enlaces antiguos - KumbiaPHP Framework PHP en espa\u00f1ol","og_description":"Recientemente he actualizado una web pas\u00e1ndola de un viejo y lento joomla, a un potente y veloc\u00edsimo kumbiaphp. En&hellip;","og_url":"https:\/\/kumbiaphp.com\/blog\/2016\/06\/28\/hacer-un-redireccionamiento-de-enlaces-antiguos\/","og_site_name":"KumbiaPHP Framework PHP en espa\u00f1ol","article_publisher":"https:\/\/www.facebook.com\/kumbia.fw","article_published_time":"2016-06-28T16:08:53+00:00","article_modified_time":"2017-12-22T10:59:08+00:00","author":"HenryMalas","twitter_card":"summary_large_image","twitter_creator":"@kumbiaphp","twitter_site":"@kumbiaphp","twitter_misc":{"Escrito por":"HenryMalas","Tiempo de lectura":"2 minutos"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/kumbiaphp.com\/blog\/2016\/06\/28\/hacer-un-redireccionamiento-de-enlaces-antiguos\/#article","isPartOf":{"@id":"https:\/\/kumbiaphp.com\/blog\/2016\/06\/28\/hacer-un-redireccionamiento-de-enlaces-antiguos\/"},"author":{"name":"HenryMalas","@id":"https:\/\/kumbiaphp.com\/blog\/#\/schema\/person\/c403e9e87939c1c0f5e5b1e766d82730"},"headline":"Hacer un redireccionamiento de enlaces antiguos","datePublished":"2016-06-28T16:08:53+00:00","dateModified":"2017-12-22T10:59:08+00:00","mainEntityOfPage":{"@id":"https:\/\/kumbiaphp.com\/blog\/2016\/06\/28\/hacer-un-redireccionamiento-de-enlaces-antiguos\/"},"wordCount":287,"commentCount":0,"publisher":{"@id":"https:\/\/kumbiaphp.com\/blog\/#organization"},"keywords":["Redirect"],"articleSection":["PHP"],"inLanguage":"es","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/kumbiaphp.com\/blog\/2016\/06\/28\/hacer-un-redireccionamiento-de-enlaces-antiguos\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/kumbiaphp.com\/blog\/2016\/06\/28\/hacer-un-redireccionamiento-de-enlaces-antiguos\/","url":"https:\/\/kumbiaphp.com\/blog\/2016\/06\/28\/hacer-un-redireccionamiento-de-enlaces-antiguos\/","name":"Hacer un redireccionamiento de enlaces antiguos - KumbiaPHP Framework PHP en espa\u00f1ol","isPartOf":{"@id":"https:\/\/kumbiaphp.com\/blog\/#website"},"datePublished":"2016-06-28T16:08:53+00:00","dateModified":"2017-12-22T10:59:08+00:00","breadcrumb":{"@id":"https:\/\/kumbiaphp.com\/blog\/2016\/06\/28\/hacer-un-redireccionamiento-de-enlaces-antiguos\/#breadcrumb"},"inLanguage":"es","potentialAction":[{"@type":"ReadAction","target":["https:\/\/kumbiaphp.com\/blog\/2016\/06\/28\/hacer-un-redireccionamiento-de-enlaces-antiguos\/"]}]},{"@type":"BreadcrumbList","@id":"https:\/\/kumbiaphp.com\/blog\/2016\/06\/28\/hacer-un-redireccionamiento-de-enlaces-antiguos\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Portada","item":"https:\/\/kumbiaphp.com\/blog\/"},{"@type":"ListItem","position":2,"name":"Hacer un redireccionamiento de enlaces antiguos"}]},{"@type":"WebSite","@id":"https:\/\/kumbiaphp.com\/blog\/#website","url":"https:\/\/kumbiaphp.com\/blog\/","name":"KumbiaPHP Framework PHP en espa\u00f1ol","description":"Web &amp; app MVC PHP framework","publisher":{"@id":"https:\/\/kumbiaphp.com\/blog\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/kumbiaphp.com\/blog\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"es"},{"@type":"Organization","@id":"https:\/\/kumbiaphp.com\/blog\/#organization","name":"KumbiaPHP Framework PHP en espa\u00f1ol","url":"https:\/\/kumbiaphp.com\/blog\/","logo":{"@type":"ImageObject","inLanguage":"es","@id":"https:\/\/kumbiaphp.com\/blog\/#\/schema\/logo\/image\/","url":"https:\/\/kumbiaphp.com\/blog\/wp-content\/uploads\/2015\/02\/logo.png","contentUrl":"https:\/\/kumbiaphp.com\/blog\/wp-content\/uploads\/2015\/02\/logo.png","width":432,"height":50,"caption":"KumbiaPHP Framework PHP en espa\u00f1ol"},"image":{"@id":"https:\/\/kumbiaphp.com\/blog\/#\/schema\/logo\/image\/"},"sameAs":["https:\/\/www.facebook.com\/kumbia.fw","https:\/\/x.com\/kumbiaphp"]},{"@type":"Person","@id":"https:\/\/kumbiaphp.com\/blog\/#\/schema\/person\/c403e9e87939c1c0f5e5b1e766d82730","name":"HenryMalas","image":{"@type":"ImageObject","inLanguage":"es","@id":"https:\/\/secure.gravatar.com\/avatar\/164ab2d5b5385076310524425a65607eb9905830c08efde39eedfef216d2323e?s=96&d=mm&r=g","url":"https:\/\/secure.gravatar.com\/avatar\/164ab2d5b5385076310524425a65607eb9905830c08efde39eedfef216d2323e?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/164ab2d5b5385076310524425a65607eb9905830c08efde39eedfef216d2323e?s=96&d=mm&r=g","caption":"HenryMalas"},"url":"https:\/\/kumbiaphp.com\/blog\/author\/henrymalas\/"}]}},"jetpack_featured_media_url":"","jetpack_sharing_enabled":true,"jetpack-related-posts":[],"amp_enabled":true,"_links":{"self":[{"href":"https:\/\/kumbiaphp.com\/blog\/wp-json\/wp\/v2\/posts\/999","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/kumbiaphp.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/kumbiaphp.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/kumbiaphp.com\/blog\/wp-json\/wp\/v2\/users\/13"}],"replies":[{"embeddable":true,"href":"https:\/\/kumbiaphp.com\/blog\/wp-json\/wp\/v2\/comments?post=999"}],"version-history":[{"count":23,"href":"https:\/\/kumbiaphp.com\/blog\/wp-json\/wp\/v2\/posts\/999\/revisions"}],"predecessor-version":[{"id":1708,"href":"https:\/\/kumbiaphp.com\/blog\/wp-json\/wp\/v2\/posts\/999\/revisions\/1708"}],"wp:attachment":[{"href":"https:\/\/kumbiaphp.com\/blog\/wp-json\/wp\/v2\/media?parent=999"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/kumbiaphp.com\/blog\/wp-json\/wp\/v2\/categories?post=999"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/kumbiaphp.com\/blog\/wp-json\/wp\/v2\/tags?post=999"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}