{"id":1070,"date":"2018-10-22T10:00:18","date_gmt":"2018-10-22T08:00:18","guid":{"rendered":"https:\/\/www.eugigufo.net\/it\/?page_id=1070"},"modified":"2024-10-01T13:58:26","modified_gmt":"2024-10-01T11:58:26","slug":"paragrafo13","status":"publish","type":"page","link":"https:\/\/eugigufo.net\/it\/inerario\/paragrafo13\/","title":{"rendered":"\u00a7\u00a013. Il\u00a0reindirizzamento per i\u00a0file spostati"},"content":{"rendered":"<p>Ho&nbsp;pensato di&nbsp;affrontare in&nbsp;un&nbsp;paragrafo separato una questione particolare riguardante il&nbsp;reindirizzamento (redirect 301). Ed&nbsp;&egrave;&nbsp;il&nbsp;caso di&nbsp;scrivere &laquo;tratto da&nbsp;una storia vera&raquo;: ho&nbsp;passato due o&nbsp;tre ore a&nbsp;risolvere il&nbsp;problema in&nbsp;questione verificatosi sul mio sito.<br \/>\nImmaginiamo di&nbsp;avere pubblicato sul nostro sito una serie di&nbsp;documenti da&nbsp;mostrare (e&nbsp;evidentemente far scaricare) ai&nbsp;visitatori. Tali documenti sono raccolti in&nbsp;una directory del nostro server&nbsp;ma, durante i&nbsp;lavori di&nbsp;aggiornamento del nostro sito, abbiamo deciso di&nbsp;spostarli da&nbsp;un&rsquo;altra parte (oppure semplicemente rinominare la&nbsp;directory). I&nbsp;nostri visitatori fedeli, per&ograve;, sono abituati ad&nbsp;aprire i&nbsp;loro documenti preferiti con i&nbsp;loro indirizzi (URL) vecchi. Probabilmente hanno pure pubblicato dei link diretti su&nbsp;internet&#8230; Come possiamo proteggerli dall&rsquo;errore 404?<br \/>\nIl&nbsp;problema si&nbsp;risolve con il&nbsp;file di&nbsp;configurazione del server (.htaccess o&nbsp;web.config).<\/p>\n<p><b>1.&nbsp;La&nbsp;soluzione con il&nbsp;web.config<\/b><br \/>\nNel caso di&nbsp;un&nbsp;server IIS (hosting Windows) dobbiamo risolvere il&nbsp;problema lavorando sul file web.config.<br \/>\nIpotizziamo un&nbsp;problema con un&nbsp;indirizzo URL da&nbsp;riscrivere in&nbsp;modo complesso. Ipotizziamo dunque di&nbsp;avere un&nbsp;archivio pubblico dei libri in&nbsp;PDF raggruppati in&nbsp;sottocartelle chiamate con i&nbsp;cognomi degli autori. Di&nbsp;conseguenza, l&rsquo;indirizzo di&nbsp;ogni file &egrave;&nbsp;http:\/\/sito.it\/download\/booksinpdf\/<i>nomeautore<\/i>\/<i>nomelibro<\/i>.pdf<br \/>\nLa&nbsp;nostra biblioteca digitale &egrave;&nbsp;grande, quindi le&nbsp;componenti che ho&nbsp;messo in&nbsp;corsivo sono ovviamente varie e&nbsp;numerose. Noi abbiamo trasferito tutti i&nbsp;pdf e&nbsp;vogliamo essere certi che i&nbsp;visitatori li&nbsp;aprano sempre senza problemi agli indirizzi nuovi: http:\/\/sito.it\/<i>files<\/i>\/booksinpdf\/<i>nomeautore<\/i>\/<i>nomelibro<\/i>.pdf<br \/>\nNell&rsquo;indirizzo nuovo ho&nbsp;messo in&nbsp;corsivo anche la&nbsp;parte modificata.<br \/>\nLa&nbsp;soluzione &egrave;&nbsp;la&nbsp;seguente:<\/p>\n<pre class=\"brush: xml; collapse: false; title: listing 1; notranslate\" title=\"listing 1\">\n&lt;rule name=&quot;redirect PDFs&quot; stopProcessing=&quot;true&quot;&gt;\n&lt;match url=&quot;download\/booksinpdf\/(&#x5B;0-9A-Za-z ]+)\/(&#x5B;0-9A-Za-z ]+).pdf$&quot; \/&gt;\n&lt;action type=&quot;Rewrite&quot; url=&quot;files\/booksinpdf\/{R:1}\/{R:2}.pdf&quot; \/&gt;\n&lt;\/rule&gt;\n<\/pre>\n<p>\nLe&nbsp;componenti variabili sono racchiuse tra le&nbsp;parentesi tonde e&nbsp;vengono riprese nella fase di&nbsp;reindirizzamento nelle parentesi graffe. La&nbsp;loro quantit&agrave; e&nbsp;posizione, naturalmente, variano in&nbsp;base alle necessit&agrave; concrete.<br \/>\nUn&rsquo;altra osservazione &egrave;&nbsp;banalissima: tale metodo funziona per tutte le&nbsp;estensioni dei file: .mp3, .jpg, .doc etc.<\/p>\n<p><b>2.&nbsp;La&nbsp;soluzione con il .htaccess<\/b><br \/>\nNel caso di&nbsp;un&nbsp;server Apache (hosting Linux) siamo costretti a&nbsp;lavorare con il&nbsp;file .htaccess.<br \/>\nLa&nbsp;logica del reindirizzamento dovrebbe essere come descritta di&nbsp;seguito, anche se&nbsp;non ho&nbsp;avuto il&nbsp;modo di&nbsp;sperimentarla sulla pratica (sto sul server IIS, quindi ho&nbsp;risolto il&nbsp;caso come descritto sopra).<br \/>\nIpotizziamo un&nbsp;problema con un&nbsp;indirizzo URL da&nbsp;riscrivere in&nbsp;modo complesso. Ipotizziamo dunque di&nbsp;avere un&nbsp;archivio pubblico dei libri in&nbsp;PDF raggruppati in&nbsp;sottocartelle chiamate con i&nbsp;cognomi degli autori. Di&nbsp;conseguenza, l&rsquo;indirizzo di&nbsp;ogni file &egrave;&nbsp;http:\/\/sito.it\/download\/booksinpdf\/<i>nomeautore<\/i>\/<i>nomelibro<\/i>.pdf<br \/>\nLa&nbsp;nostra biblioteca digitale &egrave;&nbsp;grande, quindi le&nbsp;componenti che ho&nbsp;messo in&nbsp;corsivo sono ovviamente varie e&nbsp;numerose. Noi abbiamo trasferito tutti i&nbsp;pdf e&nbsp;vogliamo essere certi che i&nbsp;visitatori li&nbsp;aprano sempre senza problemi agli indirizzi nuovi: http:\/\/sito.it\/<i>files<\/i>\/booksinpdf\/<i>nomeautore<\/i>\/<i>nomelibro<\/i>.pdf<br \/>\nNell&rsquo;indirizzo nuovo ho&nbsp;messo in&nbsp;corsivo anche la&nbsp;parte modificata.<br \/>\nLa&nbsp;soluzione &egrave;&nbsp;la&nbsp;seguente:<\/p>\n<pre class=\"brush: xml; collapse: false; title: listing 2; notranslate\" title=\"listing 2\">\nRewriteEngine on\nRewriteRule ^download\/booksinpdf\/(.+)\/(.+\\.pdf)$ files\/booksinpdf\/$1 &#x5B;L]\n<\/pre>\n<p>\nTale metodo deve funzionare per tutte le&nbsp;estensioni dei file: .mp3, .jpg, .doc etc.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Il paragrafo dell\u2019\u201cInerario\u201d spiega come pu\u00f2 essere realizzato il reindirizzamento verso una nuova \u2013 cambiata \u2013 collocazione dei file (pdf, mp3, jpg etc.) sul server. Il metodo \u00e8 particolarmente utile qualora la quantit\u00e0 dei file spostati fosse alta.<br \/>\nQuesto paragrafo \u00e8 destinato prevalentemente agli sviluppatori backend e ai proprietari dei siti.<\/p>\n","protected":false},"author":1,"featured_media":0,"parent":452,"menu_order":13,"comment_status":"open","ping_status":"closed","template":"inerarioart.php","meta":{"footnotes":""},"class_list":["post-1070","page","type-page","status-publish","hentry"],"_links":{"self":[{"href":"https:\/\/eugigufo.net\/it\/wp-json\/wp\/v2\/pages\/1070","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/eugigufo.net\/it\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/eugigufo.net\/it\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/eugigufo.net\/it\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/eugigufo.net\/it\/wp-json\/wp\/v2\/comments?post=1070"}],"version-history":[{"count":0,"href":"https:\/\/eugigufo.net\/it\/wp-json\/wp\/v2\/pages\/1070\/revisions"}],"up":[{"embeddable":true,"href":"https:\/\/eugigufo.net\/it\/wp-json\/wp\/v2\/pages\/452"}],"wp:attachment":[{"href":"https:\/\/eugigufo.net\/it\/wp-json\/wp\/v2\/media?parent=1070"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}