{"id":2532,"date":"2017-12-07T10:43:34","date_gmt":"2017-12-07T10:43:34","guid":{"rendered":"https:\/\/esferas.org\/msqlu\/?p=2532"},"modified":"2017-12-07T10:43:34","modified_gmt":"2017-12-07T10:43:34","slug":"cuando-no-se-sabe-lo-que-se-quiere","status":"publish","type":"post","link":"https:\/\/esferas.org\/msqlu\/2017\/12\/07\/cuando-no-se-sabe-lo-que-se-quiere\/","title":{"rendered":"Cuando no se sabe lo que se quiere &#8230;"},"content":{"rendered":"<p>&#8230; pasa lo que pasa. Que tengo que ir parcheando las cosas.<\/p>\n<p><!--more--><\/p>\n<p>Menos mal que hay herramientas para ello y s\u00f3lo hay que saber aplicarlas. Pero vamos al asunto.<\/p>\n<p>Tenemos una instalaci\u00f3n <em>Prestashop<\/em> con el cat\u00e1logo de la empresa. La anteriores versiones de la web han sido: hecha a mano internamente, con <em>Drupal<\/em> y con WordPress. Y sin embargo ha habido siempre una parte concreta, muy simple, que resulta ser -a tenor de las quejas- de lo m\u00e1s solicitado: los cat\u00e1logos que la empresa ha creado con nuestros productos y publicados en formato PDF. Se mantiene una carpeta en local con los documentos y se sincroniza de una tacada con el servidor remoto; como digo, simple y limpio.<\/p>\n<p>As\u00ed que cuando me dieron la orden de eliminar la \u00faltima versi\u00f3n del cat\u00e1logo hecha con WordPress y poner en primera l\u00ednea la instalaci\u00f3n de Prestashop lo hice sin mucho ruido. Si iba a tomar el control ese programa pues lo har\u00eda y ya.<\/p>\n<p>Pero resulta que algunos clientes empezaron a quejarse de que ya no ten\u00edan acceso a los cat\u00e1logos en PDF. Que eran imprescindibles para su trabajo, nuestros pedidos, las ventas y todo lo dem\u00e1s. Vamos, que d\u00f3nde leches estaban.<\/p>\n<p>Bien, pues una vez enterado de la en\u00e9sima crisis organizativa a\u00f1ad\u00ed un p\u00e1rrafo a la configuraci\u00f3n del servidor para que tomase el control y sirviese los archivos como antes:<\/p>\n<pre class=\"lang:apache decode:true \">Alias \/pdf      \/var\/www\/html\/empresa.com\/pdf\/Catalog\r\n\r\n&lt;Directory \/var\/www\/html\/empresa.com\/pdf\/Catalog&gt;\r\n           Options +Indexes\r\n           IndexIgnore css include images\r\n           IndexOptions Charset=UTF-8 FancyIndexing FoldersFirst\r\n           HeaderName \/include\/HEADER.html\r\n           ReadmeName \/include\/FOOTER.html\r\n           Require all granted\r\n&lt;\/Directory&gt;\r\n<\/pre>\n<p>Y todos felices. Lo prueban una y otra vez y ninguna pega. \u00bf No ? Pues no, porque resulta que hab\u00edan creado una ruta en Prestashop para servir los PDF desde all\u00ed y, \u00a1 sorpresa !, colisiona con la que acabamos de poner.<\/p>\n<pre class=\"lang:default decode:true \">https:\/\/empresa.com\/pdf\/pdf fichas\/...<\/pre>\n<p>Y, claro, no funciona. Y, por supuesto, sufren.<\/p>\n<p>Pues vamos a ver qu\u00e9 se puede hacer. Prestashop ha inclu\u00eddo la ruta en todos los productos que tienen un cat\u00e1logo en PDF. Casi todos de los publicados hasta ahora dir\u00eda yo, as\u00ed que la idea de cambiarlos uno a uno como que da pereza, \u00bf verdad ?<\/p>\n<p>Ah\u00ed es donde entra en acci\u00f3n la reescritura de URL del servidor Apache. Queremos que si el URL apunta a Prestashop sea \u00e9ste quien lo sirva; y si no actuamos como hasta ahora. Afortunadamente la URL de este programa incluye una expresi\u00f3n concreta: parte del URL contiene la expresi\u00f3n <code>pdf fichas<\/code> . Por ah\u00ed vamos a atacar el problema.<\/p>\n<pre class=\"lang:default decode:true \">#\r\n#       Acceso al URL \/pdf sin prestashop\r\n#\r\n\r\nRewriteEngine on\r\nRewriteCond  %{REQUEST_URI} !fichas\r\nRewriteRule  \/pdf\/(.*) \/var\/www\/html\/empresa.com\/pdf\/Catalog\/$1 [L]\r\n\r\n&lt;Directory \/var\/www\/html\/empresa.com\/pdf\/Catalog&gt;\r\n        Options +Indexes\r\n        IndexIgnore css include images\r\n        IndexOptions Charset=UTF-8 FancyIndexing FoldersFirst\r\n        HeaderName \/include\/HEADER.html\r\n        ReadmeName \/include\/FOOTER.html\r\n        Require all granted\r\n&lt;\/Directory&gt;\r\n\r\n<\/pre>\n<p>Y asunto arreglado. Se pueden usar las dos URL indistintamente sin sufrir lo m\u00e1s m\u00ednimo. Supongo que con el tiempo todos los cat\u00e1logos PDF ser\u00e1n integrados en Prestashop y ese acceso desaparecer\u00e1 pero por el momento as\u00ed se queda.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>&#8230; pasa lo que pasa. Que tengo que ir parcheando las cosas.<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_import_markdown_pro_load_document_selector":0,"_import_markdown_pro_submit_text_textarea":"","webmentions_disabled_pings":false,"webmentions_disabled":false,"footnotes":""},"categories":[2],"tags":[75,711,728],"class_list":["post-2532","post","type-post","status-publish","format-standard","hentry","category-software","tag-apache","tag-mod_rewrite","tag-prestashop"],"_links":{"self":[{"href":"https:\/\/esferas.org\/msqlu\/wp-json\/wp\/v2\/posts\/2532","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/esferas.org\/msqlu\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/esferas.org\/msqlu\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/esferas.org\/msqlu\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/esferas.org\/msqlu\/wp-json\/wp\/v2\/comments?post=2532"}],"version-history":[{"count":0,"href":"https:\/\/esferas.org\/msqlu\/wp-json\/wp\/v2\/posts\/2532\/revisions"}],"wp:attachment":[{"href":"https:\/\/esferas.org\/msqlu\/wp-json\/wp\/v2\/media?parent=2532"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/esferas.org\/msqlu\/wp-json\/wp\/v2\/categories?post=2532"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/esferas.org\/msqlu\/wp-json\/wp\/v2\/tags?post=2532"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}