{"id":3606,"date":"2012-12-06T15:51:44","date_gmt":"2012-12-06T15:51:44","guid":{"rendered":"https:\/\/www.jose-aguilar.com\/blog\/?p=3606"},"modified":"2012-12-06T15:51:44","modified_gmt":"2012-12-06T15:51:44","slug":"generar-urls-amigables-con-htacces","status":"publish","type":"post","link":"https:\/\/www.jose-aguilar.com\/blog\/generar-urls-amigables-con-htacces\/","title":{"rendered":"Generar URLs amigables con htacces"},"content":{"rendered":"<p>Las URLs amigables son m\u00e1s f\u00e1ciles de usar y de recordar por los usuarios y tambi\u00e9n son mejores para el posicionamiento en buscadores. Adem\u00e1s describen mucho mejor los enlaces dentro de una p\u00e1gina web y a\u00f1ade un mayor nivel de profesionalidad a nuestras webs.<\/p>\n<p>De todas formas, cuando hemos creado una p\u00e1gina din\u00e1mica en PHP lo normal es que tengamos URL no amigables. \u00bfC\u00f3mo las convertimos en amigables de manera autom\u00e1tica? Una manera de hacerlo es con un archivo <strong>.htaccess<\/strong> y gracias a Apache y su <strong>mod_rewrite<\/strong>.<\/p>\n<p><strong>mod_rewrite es un m\u00f3dulo de Apache<\/strong> que permite manipular en el servidor las URLs solicitadas. Es decir, cuando llega al servidor la solicitud de una URL, esta se comprueba con respecto a una serie de reglas creadas con Expresiones Regulares creadas para detectar un patr\u00f3n determinado. Si se encuentra ese patr\u00f3n en el URL y se cumple la condici\u00f3n impuesta por la Expresi\u00f3n Regular se sustituye el patr\u00f3n por una cadena de texto o por una acci\u00f3n determinada.<\/p>\n<p>En el ejemplo que vamos a ilustrar vamos a tener una lista de usuarios con link a su perfil usando urls amigables.<\/p>\n<p>Como urls no amigables tendremos:<\/p>\n<pre>http:\/\/www.yourdomain.com\/users.php?id=1<\/pre>\n<p>Y como url amigable entender\u00edamos:<\/p>\n<pre>http:\/\/www.yourdomain.com\/juan<\/pre>\n<p>Para conseguir este efecto, necesitaremos crear un archivo .htaccess y a\u00f1adir el siguiente c\u00f3digo:<\/p>\n<pre>RewriteEngine On\r\nRewriteCond %{HTTP_HOST} ^www.yourdomain.com\r\nRewriteRule (.*) http:\/\/yourdomain.com\/$1 [R=301,L]\r\n\r\nRewriteEngine On\r\nRewriteRule ^([a-zA-Z0-9_-]+)$ users.php?user=$1\r\nRewriteRule ^([a-zA-Z0-9_-]+)\/$ users.php?user=$1<\/pre>\n<p>Y modificar los links hacia los perfiles de los usuarios a\u00f1adiendo la url amigable en vez de la no amigable.<\/p>\n<p><a href=\"https:\/\/www.jose-aguilar.com\/scripts\/php\/urls-amigables\/\" target=\"_blank\">Ver ejemplo en funcionamiento<\/a><\/p>\n","protected":false},"excerpt":{"rendered":"<p>Las URLs amigables son m\u00e1s f\u00e1ciles de usar y de recordar por los usuarios y tambi\u00e9n son mejores para el posicionamiento en buscadores. Adem\u00e1s describen mucho mejor los enlaces dentro de una p\u00e1gina web y a\u00f1ade un mayor nivel de profesionalidad a nuestras webs. De todas formas, cuando hemos creado una p\u00e1gina din\u00e1mica en PHP [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":5469,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[3,11],"tags":[],"class_list":["post-3606","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-php","category-seo"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v25.6 - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\n<title>Generar URLs amigables con htacces - Jose Aguilar Blog<\/title>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<meta property=\"og:locale\" content=\"es_ES\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Generar URLs amigables con htacces - Jose Aguilar Blog\" \/>\n<meta property=\"og:description\" content=\"Las URLs amigables son m\u00e1s f\u00e1ciles de usar y de recordar por los usuarios y tambi\u00e9n son mejores para el posicionamiento en buscadores. Adem\u00e1s describen mucho mejor los enlaces dentro de una p\u00e1gina web y a\u00f1ade un mayor nivel de profesionalidad a nuestras webs. De todas formas, cuando hemos creado una p\u00e1gina din\u00e1mica en PHP [&hellip;]\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.jose-aguilar.com\/blog\/generar-urls-amigables-con-htacces\/\" \/>\n<meta property=\"og:site_name\" content=\"Jose Aguilar Blog\" \/>\n<meta property=\"article:publisher\" content=\"https:\/\/www.facebook.com\/joseaguilarblog\" \/>\n<meta property=\"article:published_time\" content=\"2012-12-06T15:51:44+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/www.jose-aguilar.com\/blog\/wp-content\/uploads\/2012\/12\/seo-friendly-url.png\" \/>\n\t<meta property=\"og:image:width\" content=\"250\" \/>\n\t<meta property=\"og:image:height\" content=\"250\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/png\" \/>\n<meta name=\"author\" content=\"Jose Aguilar\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:creator\" content=\"@JoseAguilarBlog\" \/>\n<meta name=\"twitter:site\" content=\"@JoseAguilarBlog\" \/>\n<meta name=\"twitter:label1\" content=\"Escrito por\" \/>\n\t<meta name=\"twitter:data1\" content=\"Jose Aguilar\" \/>\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\":\"WebPage\",\"@id\":\"https:\/\/www.jose-aguilar.com\/blog\/generar-urls-amigables-con-htacces\/\",\"url\":\"https:\/\/www.jose-aguilar.com\/blog\/generar-urls-amigables-con-htacces\/\",\"name\":\"Generar URLs amigables con htacces - Jose Aguilar Blog\",\"isPartOf\":{\"@id\":\"https:\/\/www.jose-aguilar.com\/blog\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\/\/www.jose-aguilar.com\/blog\/generar-urls-amigables-con-htacces\/#primaryimage\"},\"image\":{\"@id\":\"https:\/\/www.jose-aguilar.com\/blog\/generar-urls-amigables-con-htacces\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/www.jose-aguilar.com\/blog\/wp-content\/uploads\/2012\/12\/seo-friendly-url.png\",\"datePublished\":\"2012-12-06T15:51:44+00:00\",\"author\":{\"@id\":\"https:\/\/www.jose-aguilar.com\/blog\/#\/schema\/person\/e6d485db1e1140866e95971d17105d11\"},\"breadcrumb\":{\"@id\":\"https:\/\/www.jose-aguilar.com\/blog\/generar-urls-amigables-con-htacces\/#breadcrumb\"},\"inLanguage\":\"es\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/www.jose-aguilar.com\/blog\/generar-urls-amigables-con-htacces\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"es\",\"@id\":\"https:\/\/www.jose-aguilar.com\/blog\/generar-urls-amigables-con-htacces\/#primaryimage\",\"url\":\"https:\/\/www.jose-aguilar.com\/blog\/wp-content\/uploads\/2012\/12\/seo-friendly-url.png\",\"contentUrl\":\"https:\/\/www.jose-aguilar.com\/blog\/wp-content\/uploads\/2012\/12\/seo-friendly-url.png\",\"width\":250,\"height\":250},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/www.jose-aguilar.com\/blog\/generar-urls-amigables-con-htacces\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Portada\",\"item\":\"https:\/\/www.jose-aguilar.com\/blog\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Generar URLs amigables con htacces\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/www.jose-aguilar.com\/blog\/#website\",\"url\":\"https:\/\/www.jose-aguilar.com\/blog\/\",\"name\":\"Jose Aguilar Blog\",\"description\":\"Desarrollo Web con PrestaShop, WordPress, PHP, jQuery y Ajax\",\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/www.jose-aguilar.com\/blog\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"es\"},{\"@type\":\"Person\",\"@id\":\"https:\/\/www.jose-aguilar.com\/blog\/#\/schema\/person\/e6d485db1e1140866e95971d17105d11\",\"name\":\"Jose Aguilar\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"es\",\"@id\":\"https:\/\/www.jose-aguilar.com\/blog\/#\/schema\/person\/image\/\",\"url\":\"https:\/\/secure.gravatar.com\/avatar\/abbfef5f1d75260c549d0f2c2842bb697ba1aadff3b2836b39d2590c8a625415?s=96&d=mm&r=g\",\"contentUrl\":\"https:\/\/secure.gravatar.com\/avatar\/abbfef5f1d75260c549d0f2c2842bb697ba1aadff3b2836b39d2590c8a625415?s=96&d=mm&r=g\",\"caption\":\"Jose Aguilar\"},\"description\":\"Director ejecutivo y tecnol\u00f3gico en JA Modules. Experto programador PrestaShop y Experto programador WordPress.\",\"sameAs\":[\"https:\/\/plus.google.com\/114357189801512615537\"],\"url\":\"https:\/\/www.jose-aguilar.com\/blog\/author\/josea902\/\"}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"Generar URLs amigables con htacces - Jose Aguilar Blog","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"og_locale":"es_ES","og_type":"article","og_title":"Generar URLs amigables con htacces - Jose Aguilar Blog","og_description":"Las URLs amigables son m\u00e1s f\u00e1ciles de usar y de recordar por los usuarios y tambi\u00e9n son mejores para el posicionamiento en buscadores. Adem\u00e1s describen mucho mejor los enlaces dentro de una p\u00e1gina web y a\u00f1ade un mayor nivel de profesionalidad a nuestras webs. De todas formas, cuando hemos creado una p\u00e1gina din\u00e1mica en PHP [&hellip;]","og_url":"https:\/\/www.jose-aguilar.com\/blog\/generar-urls-amigables-con-htacces\/","og_site_name":"Jose Aguilar Blog","article_publisher":"https:\/\/www.facebook.com\/joseaguilarblog","article_published_time":"2012-12-06T15:51:44+00:00","og_image":[{"width":250,"height":250,"url":"https:\/\/www.jose-aguilar.com\/blog\/wp-content\/uploads\/2012\/12\/seo-friendly-url.png","type":"image\/png"}],"author":"Jose Aguilar","twitter_card":"summary_large_image","twitter_creator":"@JoseAguilarBlog","twitter_site":"@JoseAguilarBlog","twitter_misc":{"Escrito por":"Jose Aguilar","Tiempo de lectura":"2 minutos"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"WebPage","@id":"https:\/\/www.jose-aguilar.com\/blog\/generar-urls-amigables-con-htacces\/","url":"https:\/\/www.jose-aguilar.com\/blog\/generar-urls-amigables-con-htacces\/","name":"Generar URLs amigables con htacces - Jose Aguilar Blog","isPartOf":{"@id":"https:\/\/www.jose-aguilar.com\/blog\/#website"},"primaryImageOfPage":{"@id":"https:\/\/www.jose-aguilar.com\/blog\/generar-urls-amigables-con-htacces\/#primaryimage"},"image":{"@id":"https:\/\/www.jose-aguilar.com\/blog\/generar-urls-amigables-con-htacces\/#primaryimage"},"thumbnailUrl":"https:\/\/www.jose-aguilar.com\/blog\/wp-content\/uploads\/2012\/12\/seo-friendly-url.png","datePublished":"2012-12-06T15:51:44+00:00","author":{"@id":"https:\/\/www.jose-aguilar.com\/blog\/#\/schema\/person\/e6d485db1e1140866e95971d17105d11"},"breadcrumb":{"@id":"https:\/\/www.jose-aguilar.com\/blog\/generar-urls-amigables-con-htacces\/#breadcrumb"},"inLanguage":"es","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.jose-aguilar.com\/blog\/generar-urls-amigables-con-htacces\/"]}]},{"@type":"ImageObject","inLanguage":"es","@id":"https:\/\/www.jose-aguilar.com\/blog\/generar-urls-amigables-con-htacces\/#primaryimage","url":"https:\/\/www.jose-aguilar.com\/blog\/wp-content\/uploads\/2012\/12\/seo-friendly-url.png","contentUrl":"https:\/\/www.jose-aguilar.com\/blog\/wp-content\/uploads\/2012\/12\/seo-friendly-url.png","width":250,"height":250},{"@type":"BreadcrumbList","@id":"https:\/\/www.jose-aguilar.com\/blog\/generar-urls-amigables-con-htacces\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Portada","item":"https:\/\/www.jose-aguilar.com\/blog\/"},{"@type":"ListItem","position":2,"name":"Generar URLs amigables con htacces"}]},{"@type":"WebSite","@id":"https:\/\/www.jose-aguilar.com\/blog\/#website","url":"https:\/\/www.jose-aguilar.com\/blog\/","name":"Jose Aguilar Blog","description":"Desarrollo Web con PrestaShop, WordPress, PHP, jQuery y Ajax","potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/www.jose-aguilar.com\/blog\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"es"},{"@type":"Person","@id":"https:\/\/www.jose-aguilar.com\/blog\/#\/schema\/person\/e6d485db1e1140866e95971d17105d11","name":"Jose Aguilar","image":{"@type":"ImageObject","inLanguage":"es","@id":"https:\/\/www.jose-aguilar.com\/blog\/#\/schema\/person\/image\/","url":"https:\/\/secure.gravatar.com\/avatar\/abbfef5f1d75260c549d0f2c2842bb697ba1aadff3b2836b39d2590c8a625415?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/abbfef5f1d75260c549d0f2c2842bb697ba1aadff3b2836b39d2590c8a625415?s=96&d=mm&r=g","caption":"Jose Aguilar"},"description":"Director ejecutivo y tecnol\u00f3gico en JA Modules. Experto programador PrestaShop y Experto programador WordPress.","sameAs":["https:\/\/plus.google.com\/114357189801512615537"],"url":"https:\/\/www.jose-aguilar.com\/blog\/author\/josea902\/"}]}},"_links":{"self":[{"href":"https:\/\/www.jose-aguilar.com\/blog\/wp-json\/wp\/v2\/posts\/3606","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.jose-aguilar.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.jose-aguilar.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.jose-aguilar.com\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.jose-aguilar.com\/blog\/wp-json\/wp\/v2\/comments?post=3606"}],"version-history":[{"count":0,"href":"https:\/\/www.jose-aguilar.com\/blog\/wp-json\/wp\/v2\/posts\/3606\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.jose-aguilar.com\/blog\/wp-json\/wp\/v2\/media\/5469"}],"wp:attachment":[{"href":"https:\/\/www.jose-aguilar.com\/blog\/wp-json\/wp\/v2\/media?parent=3606"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.jose-aguilar.com\/blog\/wp-json\/wp\/v2\/categories?post=3606"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.jose-aguilar.com\/blog\/wp-json\/wp\/v2\/tags?post=3606"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}