<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:content="http://purl.org/rss/1.0/modules/content/">
    <channel>
        <title>Aldolat.it &#8212; Post con tag Htaccess</title>
        <link>https://www.aldolat.it/tags/htaccess/</link>
        <description>Ultimi post pubblicati nel tag Htaccess &#8212; aldolat.it</description>
        <generator>Hugo -- gohugo.io</generator>
        <language>it</language>
        <managingEditor>aldolat@gmail.com (Aldo Latino)</managingEditor>
        <webMaster>aldolat@gmail.com (Aldo Latino)</webMaster>
        <copyright>Creative Commons BY-SA 4.0</copyright>
        <lastBuildDate>Sat, 16 Aug 2025 10:17:12 +0200</lastBuildDate>
        <atom:link href="https://www.aldolat.it/tags/htaccess/index.xml" rel="self" type="application/rss+xml" />
        <item>
            <title>La direttiva Order in Apache</title>
            <link>https://www.aldolat.it/posts/2023/direttiva-order-apache/</link>
            <pubDate>Sun, 06 Aug 2023 10:25:24 +0200</pubDate>
            <author>aldolat@gmail.com (Aldo Latino)</author>
            <guid>https://www.aldolat.it/posts/2023/direttiva-order-apache/</guid>
            <description>Uno dei punti fondamentali1 da comprendere per il controllo del proprio server Apache è la direttiva Order, quella in cui vediamo Allow,Deny o Deny,Allow. Non è di immediata comprensione ma, una volta capito il meccanismo che sta alla base, non dovrebbe risultare difficile applicarla con relativa semplicità.&#xA;Poniamo il caso che abbiamo queste direttive nel nostro file .htaccess:&#xA;&amp;lt;Directory &amp;#34;/www&amp;#34;&amp;gt; Order Deny,Allow Deny from all Allow from 192.168.0.100 123.456. Allow from example.org example.com Allow from foo.example. &amp;lt;/Directory&amp;gt; Quello su cui questo post si concentra è la riga che inizia con Order. Questa direttiva dice ad Apache in quale ordine deve applicare le successive direttive Deny e Allow, vale a dire se prima l&amp;rsquo;una o l&amp;rsquo;altra. Nel caso in esempio, l&amp;rsquo;ordine è prima quelle Deny e poi quelle Allow. L&amp;rsquo;ordine è importante perché in Apache l&amp;rsquo;ultima direttiva ha priorità sulle precedenti.</description>
            <content:encoded>&lt;p class=&#34;dc&#34;&gt;U&lt;span class=&#34;allsc&#34;&gt;no dei&lt;/span&gt; punti fondamentali&lt;sup id=&#34;fnref:1&#34;&gt;&lt;a href=&#34;#fn:1&#34; class=&#34;footnote-ref&#34; role=&#34;doc-noteref&#34;&gt;1&lt;/a&gt;&lt;/sup&gt; da comprendere per il controllo del proprio server Apache è la direttiva &lt;code&gt;Order&lt;/code&gt;, quella in cui vediamo &lt;code&gt;Allow,Deny&lt;/code&gt; o &lt;code&gt;Deny,Allow&lt;/code&gt;. Non è di immediata comprensione ma, una volta capito il meccanismo che sta alla base, non dovrebbe risultare difficile applicarla con relativa semplicità.&lt;/p&gt;&#xA;&lt;hr class=&#34;decorative&#34;&gt;&#xA;&#xA;&lt;p&gt;Poniamo il caso che abbiamo queste direttive nel nostro file &lt;code&gt;.htaccess&lt;/code&gt;:&lt;/p&gt;&#xA;&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-apache&#34; data-lang=&#34;apache&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;nt&#34;&gt;&amp;lt;Directory&lt;/span&gt; &lt;span class=&#34;s&#34;&gt;&amp;#34;/www&amp;#34;&lt;/span&gt;&lt;span class=&#34;nt&#34;&gt;&amp;gt;&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;nb&#34;&gt;Order&lt;/span&gt; Deny,Allow&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;nb&#34;&gt;Deny&lt;/span&gt; from &lt;span class=&#34;k&#34;&gt;all&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;nb&#34;&gt;Allow&lt;/span&gt; from &lt;span class=&#34;m&#34;&gt;192.168.0.100&lt;/span&gt; &lt;span class=&#34;m&#34;&gt;123&lt;/span&gt;.456.&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;nb&#34;&gt;Allow&lt;/span&gt; from example.org example.com&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;nb&#34;&gt;Allow&lt;/span&gt; from foo.example.&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;nt&#34;&gt;&amp;lt;/Directory&amp;gt;&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;Quello su cui questo post si concentra è la riga che inizia con &lt;code&gt;Order&lt;/code&gt;. Questa direttiva dice ad Apache in quale ordine deve applicare le successive direttive &lt;code&gt;Deny&lt;/code&gt; e &lt;code&gt;Allow&lt;/code&gt;, vale a dire se prima l&amp;rsquo;una o l&amp;rsquo;altra. Nel caso in esempio, l&amp;rsquo;ordine è prima quelle &lt;code&gt;Deny&lt;/code&gt; e poi quelle &lt;code&gt;Allow&lt;/code&gt;. L&amp;rsquo;ordine è importante perché in Apache l&amp;rsquo;ultima direttiva ha priorità sulle precedenti.&lt;/p&gt;&#xA;&lt;p&gt;Detta in modo semplice quelle righe significano:&lt;/p&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;nega (&lt;code&gt;Deny&lt;/code&gt;) a tutti l&amp;rsquo;accesso alla directory &lt;code&gt;/www&lt;/code&gt;;&lt;/li&gt;&#xA;&lt;li&gt;permettilo (&lt;code&gt;Allow&lt;/code&gt;) a chi proviene dall&amp;rsquo;indirizzo &lt;span class=&#34;allsc&#34;&gt;IP&lt;/span&gt; &lt;code&gt;192.168.0.100&lt;/code&gt; e a chi abbia indirizzo &lt;span class=&#34;allsc&#34;&gt;IP&lt;/span&gt; che comincia con &lt;code&gt;123.456.&lt;/code&gt;;&lt;/li&gt;&#xA;&lt;li&gt;permettilo (&lt;code&gt;Allow&lt;/code&gt;) a chi proviene dal dominio &lt;code&gt;example.org&lt;/code&gt; o da &lt;code&gt;example.com&lt;/code&gt;;&lt;/li&gt;&#xA;&lt;li&gt;permettilo (&lt;code&gt;Allow&lt;/code&gt;) a chi proviene dal dominio &lt;code&gt;foo.example.&lt;/code&gt; di qualsiasi &lt;span class=&#34;allsc&#34;&gt;TLD&lt;/span&gt;.&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;p&gt;Se, invece, invertissimo l&amp;rsquo;ordine della direttiva &lt;code&gt;Order&lt;/code&gt; da &lt;code&gt;Order Deny,Allow&lt;/code&gt; a &lt;code&gt;Order Allow,Deny&lt;/code&gt;, l&amp;rsquo;effetto sarebbe di bloccare tutti. Avremmo infatti che Apache leggerebbe così:&lt;/p&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;permetti l&amp;rsquo;accesso all&amp;rsquo;indirizzo &lt;span class=&#34;allsc&#34;&gt;IP&lt;/span&gt; &lt;code&gt;192.168.0.100&lt;/code&gt; e a chi abbia&amp;hellip;;&lt;/li&gt;&#xA;&lt;li&gt;permetti l&amp;rsquo;accesso al dominio &lt;code&gt;example.org&lt;/code&gt;&amp;hellip;;&lt;/li&gt;&#xA;&lt;li&gt;ecc&amp;hellip;&lt;/li&gt;&#xA;&lt;li&gt;nega a tutti l&amp;rsquo;accesso.&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;p&gt;La regola finale avrebbe la prevalenza sulle precedenti, finendo così per bloccare tutti.&lt;/p&gt;&#xA;&lt;p&gt;L&amp;rsquo;ordine con cui le direttive sono scritte nel blocco di codice non ha invece alcuna influenza.&lt;sup id=&#34;fnref:2&#34;&gt;&lt;a href=&#34;#fn:2&#34; class=&#34;footnote-ref&#34; role=&#34;doc-noteref&#34;&gt;2&lt;/a&gt;&lt;/sup&gt; Potremmo anche scriverle così:&lt;/p&gt;&#xA;&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-apache&#34; data-lang=&#34;apache&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;nt&#34;&gt;&amp;lt;Directory&lt;/span&gt; &lt;span class=&#34;s&#34;&gt;&amp;#34;/www&amp;#34;&lt;/span&gt;&lt;span class=&#34;nt&#34;&gt;&amp;gt;&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;nb&#34;&gt;Order&lt;/span&gt; Deny,Allow&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;nb&#34;&gt;Allow&lt;/span&gt; from &lt;span class=&#34;m&#34;&gt;192.168.0.100&lt;/span&gt; &lt;span class=&#34;m&#34;&gt;123&lt;/span&gt;.456.&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;nb&#34;&gt;Allow&lt;/span&gt; from example.org example.com&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;nb&#34;&gt;Deny&lt;/span&gt; from &lt;span class=&#34;k&#34;&gt;all&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;nb&#34;&gt;Allow&lt;/span&gt; from foo.example.&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;nt&#34;&gt;&amp;lt;/Directory&amp;gt;&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;In ogni caso Apache leggerà e applicherà in blocco prima tutte le direttive &lt;code&gt;Deny&lt;/code&gt; e poi tutte quelle &lt;code&gt;Allow&lt;/code&gt;. In linea generale, Jeff Starr&lt;sup id=&#34;fnref:3&#34;&gt;&lt;a href=&#34;#fn:3&#34; class=&#34;footnote-ref&#34; role=&#34;doc-noteref&#34;&gt;3&lt;/a&gt;&lt;/sup&gt; consiglia di tenere queste due regole di base:&lt;/p&gt;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;&#xA;&lt;p&gt;&lt;em&gt;Quando si vogliono bloccare&lt;/em&gt; specifici indirizzi, usare &lt;code&gt;Order Allow,Deny&lt;/code&gt;, quindi la direttiva &lt;code&gt;Allow from all&lt;/code&gt; e a seguire le direttive &lt;code&gt;Deny from ...&lt;/code&gt;. Ad esempio:&lt;/p&gt;&#xA;&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-apache&#34; data-lang=&#34;apache&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;nt&#34;&gt;&amp;lt;Directory&lt;/span&gt; &lt;span class=&#34;s&#34;&gt;&amp;#34;/www&amp;#34;&lt;/span&gt;&lt;span class=&#34;nt&#34;&gt;&amp;gt;&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;nb&#34;&gt;Order&lt;/span&gt; Allow,Deny&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;nb&#34;&gt;Allow&lt;/span&gt; from &lt;span class=&#34;k&#34;&gt;all&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;nb&#34;&gt;Deny&lt;/span&gt; from &lt;span class=&#34;m&#34;&gt;192.168.0.100&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;nt&#34;&gt;&amp;lt;/Directory&amp;gt;&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/li&gt;&#xA;&lt;li&gt;&#xA;&lt;p&gt;&lt;em&gt;Quando si vogliono permettere&lt;/em&gt; specifici indirizzi, usare &lt;code&gt;Order Deny,Allow&lt;/code&gt;, quindi la direttiva &lt;code&gt;Deny from all&lt;/code&gt; e a seguire le direttive &lt;code&gt;Allow from ...&lt;/code&gt;. Ad esempio:&lt;/p&gt;&#xA;&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-apache&#34; data-lang=&#34;apache&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;nt&#34;&gt;&amp;lt;Directory&lt;/span&gt; &lt;span class=&#34;s&#34;&gt;&amp;#34;/www&amp;#34;&lt;/span&gt;&lt;span class=&#34;nt&#34;&gt;&amp;gt;&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;nb&#34;&gt;Order&lt;/span&gt; Deny,Allow&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;nb&#34;&gt;Deny&lt;/span&gt; from &lt;span class=&#34;k&#34;&gt;all&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;nb&#34;&gt;Allow&lt;/span&gt; from &lt;span class=&#34;m&#34;&gt;192.168.0.100&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;nt&#34;&gt;&amp;lt;/Directory&amp;gt;&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;&lt;h2 id=&#34;bibliografia&#34;&gt;Bibliografia&lt;/h2&gt;&#xA;&lt;ul class=&#34;bibliography&#34;&gt;&#xA;&lt;li&gt;&lt;span class=&#34;sc-petite&#34;&gt;The Apache Software Foundation&lt;/span&gt;, &lt;em&gt;&lt;a href=&#34;https://httpd.apache.org/docs/2.4/mod/mod_access_compat.html&#34;&gt;Apache Module mod_access_compat&lt;/a&gt;&lt;/em&gt;.&lt;/li&gt;&#xA;&lt;li&gt;&lt;span class=&#34;sc-petite&#34;&gt;Ben Laurie &amp;ndash; Peter Laurie&lt;/span&gt;, &lt;em&gt;&lt;a href=&#34;https://docstore.mik.ua/orelly/linux/apache/ch05_06.htm&#34;&gt;Apache: The Definitive Guide&lt;/a&gt;&lt;/em&gt;, O&amp;rsquo;Reilly &amp;amp; Associates, 2001.&lt;/li&gt;&#xA;&lt;li&gt;&lt;span class=&#34;sc-petite&#34;&gt;Jeff Starr&lt;/span&gt;, &lt;em&gt;&lt;a href=&#34;https://htaccessbook.com&#34;&gt;.htaccess made easy&lt;/a&gt;&lt;/em&gt;, Perishable Press Books, aprile 2023.&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;div class=&#34;footnotes&#34; role=&#34;doc-endnotes&#34;&gt;&#xA;&lt;hr&gt;&#xA;&lt;ol&gt;&#xA;&lt;li id=&#34;fn:1&#34;&gt;&#xA;&lt;p&gt;«Getting the order and syntax of these directives is critical to their operation». &lt;span class=&#34;sc&#34;&gt;Jeff Starr&lt;/span&gt;, &lt;em&gt;&lt;a href=&#34;https://htaccessbook.com&#34;&gt;.htaccess made easy&lt;/a&gt;&lt;/em&gt;, Perishable Press Books, aprile 2023, p. 123.&amp;#160;&lt;a href=&#34;#fnref:1&#34; class=&#34;footnote-backref&#34; role=&#34;doc-backlink&#34;&gt;&amp;#x21a9;&amp;#xfe0e;&lt;/a&gt;&lt;/p&gt;&#xA;&lt;/li&gt;&#xA;&lt;li id=&#34;fn:2&#34;&gt;&#xA;&lt;p&gt;«The order in which lines appear in the configuration files is not significant &amp;mdash; all Allow lines are processed as one group, all Deny lines are considered as another, and the default state is considered by itself». Cfr. &lt;span class=&#34;sc&#34;&gt;The Apache Software Foundation&lt;/span&gt;, &lt;em&gt;&lt;a href=&#34;https://httpd.apache.org/docs/2.4/mod/mod_access_compat.html&#34;&gt;Apache Module mod_access_compat&lt;/a&gt;&lt;/em&gt;, par. &amp;ldquo;Order Directive&amp;rdquo;.&amp;#160;&lt;a href=&#34;#fnref:2&#34; class=&#34;footnote-backref&#34; role=&#34;doc-backlink&#34;&gt;&amp;#x21a9;&amp;#xfe0e;&lt;/a&gt;&lt;/p&gt;&#xA;&lt;/li&gt;&#xA;&lt;li id=&#34;fn:3&#34;&gt;&#xA;&lt;p&gt;&lt;span class=&#34;sc&#34;&gt;Jeff Starr&lt;/span&gt;, &lt;em&gt;op. cit.&lt;/em&gt;, p. 123.&amp;#160;&lt;a href=&#34;#fnref:3&#34; class=&#34;footnote-backref&#34; role=&#34;doc-backlink&#34;&gt;&amp;#x21a9;&amp;#xfe0e;&lt;/a&gt;&lt;/p&gt;&#xA;&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;&lt;/div&gt;&#xA;&lt;p&gt;L&#39;articolo &lt;a href=&#34;https://www.aldolat.it/posts/2023/direttiva-order-apache/&#34;&gt;La direttiva Order in Apache&lt;/a&gt; è uno scritto di &lt;a href=&#34;https://www.aldolat.it/&#34;&gt;aldolat.it&lt;/a&gt;. Rispettane le &lt;a href=&#34;https://www.aldolat.it/info/#licenza&#34;&gt;condizioni di licenza&lt;/a&gt;.&lt;/p&gt;</content:encoded>
        </item>
        <item>
            <title>Reindirizzamenti con htaccess</title>
            <link>https://www.aldolat.it/posts/2022/reindirizzamenti-con-htaccess/</link>
            <pubDate>Sun, 01 May 2022 10:18:47 +0200</pubDate>
            <author>aldolat@gmail.com (Aldo Latino)</author>
            <guid>https://www.aldolat.it/posts/2022/reindirizzamenti-con-htaccess/</guid>
            <description>Uno degli aspetti più intriganti che mi è capitato nella mia avventura di migrazione da WordPress a Hugo è quella dei reindirizzamenti dei post da un permalink a un altro.&#xA;Nella precedente installazione di WordPress la struttura dei permalink era la seguente:&#xA;https://www.aldolat.it/&amp;lt;ANNO&amp;gt;/&amp;lt;CATEGORIA&amp;gt;/&amp;lt;TITOLO-DEL-POST&amp;gt;/ In Hugo ho deciso di cambiarla togliendo &amp;lt;CATEGORIA&amp;gt;/ dall&amp;rsquo;indirizzo e premettendovi posts/:&#xA;https://www.aldolat.it/posts/&amp;lt;ANNO&amp;gt;/&amp;lt;TITOLO-DEL-POST&amp;gt;/ lasciando così la stessa struttura in cui sono organizzati file e directory nel mio filesystem.</description>
            <content:encoded>&lt;p class=&#34;dc&#34;&gt;U&lt;span class=&#34;allsc&#34;&gt;no degli&lt;/span&gt; aspetti più intriganti che mi è capitato nella mia avventura di migrazione da WordPress a Hugo è quella dei reindirizzamenti dei post da un permalink a un altro.&lt;/p&gt;&#xA;&lt;p&gt;Nella precedente installazione di WordPress la struttura dei permalink era la seguente:&lt;/p&gt;&#xA;&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-text&#34; data-lang=&#34;text&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;https://www.aldolat.it/&amp;lt;ANNO&amp;gt;/&amp;lt;CATEGORIA&amp;gt;/&amp;lt;TITOLO-DEL-POST&amp;gt;/&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;In Hugo ho deciso di cambiarla togliendo &lt;code&gt;&amp;lt;CATEGORIA&amp;gt;/&lt;/code&gt; dall&amp;rsquo;indirizzo e premettendovi &lt;code&gt;posts/&lt;/code&gt;:&lt;/p&gt;&#xA;&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-text&#34; data-lang=&#34;text&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;https://www.aldolat.it/posts/&amp;lt;ANNO&amp;gt;/&amp;lt;TITOLO-DEL-POST&amp;gt;/&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;lasciando così la stessa struttura in cui sono organizzati file e directory nel mio filesystem.&lt;/p&gt;&#xA;&lt;p&gt;Chiaramente questo significa che il vecchio indirizzo non funziona più e genera un errore 404. Ma è possibile intervenire con una regola nel file &lt;code&gt;.htaccess&lt;/code&gt; piuttosto semplice. Eccola.&lt;/p&gt;&#xA;&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-apache&#34; data-lang=&#34;apache&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;nb&#34;&gt;RedirectMatch&lt;/span&gt; &lt;span class=&#34;m&#34;&gt;301&lt;/span&gt; ^/(\d{4})/(.*)/(.*)/$ https://www.aldolat.it/posts/$1/$3&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;Questo è quello che fa la regola, la quale utilizza &lt;code&gt;mod_alias&lt;/code&gt;, il sistema più semplice per reindizzare cose, rispetto a &lt;code&gt;mod_rewrite&lt;/code&gt;, più potente ma un pelo più complesso:&lt;/p&gt;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;&lt;code&gt;RedirectMatch&lt;/code&gt;: attiva &lt;code&gt;mod_alias&lt;/code&gt; per il reindirizzamento.&lt;/li&gt;&#xA;&lt;li&gt;&lt;code&gt;301&lt;/code&gt;: applica una stato HTTP di &lt;em&gt;Moved Permanently&lt;/em&gt;.&lt;/li&gt;&#xA;&lt;li&gt;&lt;code&gt;^/(\d{4})/(.*)/(.*)/$&lt;/code&gt;: contiene la stringa da cercare. In questo caso si tratta di una regex che in sostanza dice questo: trova una stringa che inizia (&lt;code&gt;^&lt;/code&gt;) con &lt;code&gt;/(quattro numeri)&lt;/code&gt; e prosegue con due parti contenenti qualsiasi carattere e delimitate con slash (&lt;code&gt;/&lt;/code&gt;) e queste due parti sono la parte finale della stringa (&lt;code&gt;$&lt;/code&gt;). Fate attenzione alle parentesi tonde, in quanto queste saranno considerate da &lt;code&gt;mod_alias&lt;/code&gt; come variabili che si possono usare per il reindirizzamento. Le variabili saranno numerate sequenzialmente da &lt;code&gt;mod_alias&lt;/code&gt; a partire da &lt;code&gt;1&lt;/code&gt;.&lt;/li&gt;&#xA;&lt;li&gt;&lt;code&gt;https://www.aldolat.it/posts/$1/$3&lt;/code&gt;: reindirizza ciò che hai trovato all&amp;rsquo;indirizzo indicato, sostituendo le variabili &lt;code&gt;$1&lt;/code&gt; e &lt;code&gt;$3&lt;/code&gt; in questo modo:&#xA;&lt;ol&gt;&#xA;&lt;li&gt;&lt;code&gt;$1&lt;/code&gt;: fa riferimento al primo gruppo di parentesi tonde, vale a dire &lt;code&gt;(\d{4})&lt;/code&gt;;&lt;/li&gt;&#xA;&lt;li&gt;&lt;code&gt;$3&lt;/code&gt;: fa riferimento al terzo gruppo di parentesi tonde, vale a dire &lt;code&gt;(.*)&lt;/code&gt;.&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;&lt;p&gt;Il risultato sarà quindi che un indirizzo del tipo:&lt;/p&gt;&#xA;&lt;p class=&#34;noindent&#34;&gt;&lt;code&gt;&amp;lt;https://www.aldolat.it/2012/news/htaccess-made-easy/&amp;gt;&lt;/code&gt;&lt;/p&gt;&#xA;&lt;p class=&#34;noindent&#34;&gt;verrà reindirizzato a:&lt;/p&gt;&#xA;&lt;p class=&#34;noindent&#34;&gt;&lt;code&gt;&amp;lt;https://www.aldolat.it/posts/2012/htaccess-made-easy/&amp;gt;&lt;/code&gt;&lt;/p&gt;&#xA;&lt;p&gt;L&#39;articolo &lt;a href=&#34;https://www.aldolat.it/posts/2022/reindirizzamenti-con-htaccess/&#34;&gt;Reindirizzamenti con htaccess&lt;/a&gt; è uno scritto di &lt;a href=&#34;https://www.aldolat.it/&#34;&gt;aldolat.it&lt;/a&gt;. Rispettane le &lt;a href=&#34;https://www.aldolat.it/info/#licenza&#34;&gt;condizioni di licenza&lt;/a&gt;.&lt;/p&gt;</content:encoded>
        </item>
        <item>
            <title>Redirigere la chiamata a file non esistenti</title>
            <link>https://www.aldolat.it/posts/2015/redirigere-la-chiamata-a-file-non-esistenti/</link>
            <pubDate>Sun, 15 Mar 2015 10:05:12 +0000</pubDate>
            <author>aldolat@gmail.com (Aldo Latino)</author>
            <guid>https://www.aldolat.it/posts/2015/redirigere-la-chiamata-a-file-non-esistenti/</guid>
            <description>Restando in tema di file .htaccess, condivido con voi qualche modifica che ho introdotto recentemente dopo aver dato uno sguardo al registro degli errori del mio hosting provider. Tra le righe presenti notavo che si tentava si accedere ripetutamente al file favicon.ico sia cercandolo nella directory radice del sito (dove non è presente) sia in altre posizioni, nonostante la chiamata al file favicon.ico era correttamente generata nell&amp;rsquo;HTML dal tema in uso.</description>
            <content:encoded>&lt;figure class=&#34;aligncenter&#34;&gt;&lt;img src=&#34;https://www.aldolat.it/images/2015/03/meerkat.jpg&#34;&#xA;&#x9;&#x9;&#x9;alt=&#34;meerkat&#34;&gt;&#xA;&lt;/figure&gt;&#xA;&#xA;&lt;p&gt;Restando in tema di file &lt;code&gt;.htaccess&lt;/code&gt;, condivido con voi qualche modifica che ho introdotto recentemente dopo aver dato uno sguardo al registro degli errori del mio hosting provider. Tra le righe presenti notavo che si tentava si accedere ripetutamente al file &lt;code&gt;favicon.ico&lt;/code&gt; sia cercandolo nella directory radice del sito (dove non è presente) sia in altre posizioni, nonostante la chiamata al file &lt;code&gt;favicon.ico&lt;/code&gt; era correttamente generata nell&amp;rsquo;&lt;span class=&#34;allsc&#34;&gt;HTML&lt;/span&gt; dal tema in uso.&lt;/p&gt;&#xA;&lt;p&gt;Per questo motivo ho aggiunto alcune righe in &lt;code&gt;.htaccess&lt;/code&gt;, in modo da dirigere la ricerca del file in questione.&lt;/p&gt;&#xA;&lt;h2 id=&#34;il-file-faviconico&#34;&gt;Il file favicon.ico&lt;/h2&gt;&#xA;&lt;p&gt;Ecco cosa ho aggiunto nel file di configurazione di Apache:&lt;/p&gt;&#xA;&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-text&#34; data-lang=&#34;text&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&amp;lt;IfModule mod_rewrite.c&amp;gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    RewriteEngine on&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    RewriteCond %{REQUEST_URI} !^/percorso/a/favicon\.ico [NC]&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    RewriteCond %{REQUEST_URI} favicon\.ico [NC]&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    RewriteRule .* http://www.example.com/percorso/a/favicon.ico [R=301,L]&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&amp;lt;/IfModule&amp;gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;Queste righe fanno le seguenti operazioni:&lt;/p&gt;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;controllare se è presente il modulo mod_rewrite in Apache;&lt;/li&gt;&#xA;&lt;li&gt;attivare il motore di rewrite;&lt;/li&gt;&#xA;&lt;li&gt;porre la prima condizione: l’&lt;span class=&#34;allsc&#34;&gt;URL&lt;/span&gt; richiesto non è quello del file &lt;code&gt;favicon.ico&lt;/code&gt; corretto;&lt;/li&gt;&#xA;&lt;li&gt;porre la seconda condizione: l’&lt;span class=&#34;allsc&#34;&gt;URL&lt;/span&gt; contiene la stringa &lt;code&gt;favicon.ico&lt;/code&gt;;&lt;/li&gt;&#xA;&lt;li&gt;avviare la regola: indirizza la richiesta alla posizione corretta e applica uno status &lt;span class=&#34;allsc&#34;&gt;HTML&lt;/span&gt; 301 &amp;ldquo;Moved permanently&amp;rdquo;.&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;&lt;p&gt;Così, ad esempio, uno qualsiasi dei seguenti indirizzi:&lt;/p&gt;&#xA;&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-text&#34; data-lang=&#34;text&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;http://www.example.com/files/favicon.ico&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;http://www.example.com/tag/apache/favicon.ico&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;viene indirizzato a:&lt;/p&gt;&#xA;&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-text&#34; data-lang=&#34;text&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;http://www.example.com/percorso/a/favicon.ico&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;dove è presente fisicamente il file.&lt;/p&gt;&#xA;&lt;h2 id=&#34;altri-file&#34;&gt;Altri file&lt;/h2&gt;&#xA;&lt;p&gt;Il file &lt;code&gt;favicon.ico&lt;/code&gt; non è il solo ad essere vittima di questa ricerca errata, ma anche &lt;code&gt;robots.txt&lt;/code&gt;, &lt;code&gt;sitemap.xml&lt;/code&gt; e &lt;code&gt;humans.txt&lt;/code&gt;. Possiamo quindi aggiungere anche queste righe, dove ogni blocco di righe si riferisce a uno specifico file:&lt;/p&gt;&#xA;&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-text&#34; data-lang=&#34;text&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&amp;lt;IfModule mod_rewrite.c&amp;gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    RewriteEngine on&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    RewriteCond %{REQUEST_URI} !^/robots\.txt [NC]&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    RewriteCond %{REQUEST_URI} robots\.txt [NC]&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    RewriteRule .* http://www.domain.tld/robots.txt [R=301,L]&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&amp;lt;/IfModule&amp;gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&amp;lt;IfModule mod_rewrite.c&amp;gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    RewriteEngine on&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    RewriteCond %{REQUEST_URI} !^/sitemap\.xml [NC]&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    RewriteCond %{REQUEST_URI} sitemap\.xml [NC]&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    RewriteRule .* http://www.domain.tld/sitemap.xml [R=301,L]&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&amp;lt;/IfModule&amp;gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&amp;lt;IfModule mod_rewrite.c&amp;gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    RewriteEngine on&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    RewriteCond %{REQUEST_URI} !^/humans\.txt [NC]&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    RewriteCond %{REQUEST_URI} humans\.txt [NC]&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    RewriteRule .* http://www.domain.tld/humans.txt [R=301,L]&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&amp;lt;/IfModule&amp;gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;Potete trovare l’argomento spiegato più in dettaglio nel libro di Jeff Starr, &lt;em&gt;.htaccess made easy&lt;/em&gt;, A practical guide for administrators, designers &amp;amp; developers, Perishable Press, 2013, di cui vi ho già parlato in questo &lt;a href=&#34;https://www.aldolat.it/posts/2012/htaccess-made-easy/&#34;&gt;precedente post&lt;/a&gt;.&#xA;&lt;br&gt;&#xA;&lt;br&gt;&#xA;Photo courtesy: &lt;a href=&#34;https://pixabay.com/it/meerkat-animale-selvatici-natura-255564/&#34;&gt;&lt;span class=&#34;sc&#34;&gt;peterstuartmill&lt;/span&gt;&lt;/a&gt;, &lt;em&gt;Senza titolo&lt;/em&gt;, &lt;span class=&#34;allsc&#34;&gt;CC0&lt;/span&gt; &lt;a href=&#34;https://creativecommons.org/publicdomain/zero/1.0/deed.it&#34;&gt;Public Domain&lt;/a&gt;.&lt;/p&gt;&#xA;&lt;p&gt;L&#39;articolo &lt;a href=&#34;https://www.aldolat.it/posts/2015/redirigere-la-chiamata-a-file-non-esistenti/&#34;&gt;Redirigere la chiamata a file non esistenti&lt;/a&gt; è uno scritto di &lt;a href=&#34;https://www.aldolat.it/&#34;&gt;aldolat.it&lt;/a&gt;. Rispettane le &lt;a href=&#34;https://www.aldolat.it/info/#licenza&#34;&gt;condizioni di licenza&lt;/a&gt;.&lt;/p&gt;</content:encoded>
        </item>
        <item>
            <title>Bloccare l’accesso al file wp-login.php</title>
            <link>https://www.aldolat.it/posts/2015/bloccare-accesso-file-wp-login-php/</link>
            <pubDate>Sat, 31 Jan 2015 20:35:00 +0000</pubDate>
            <author>aldolat@gmail.com (Aldo Latino)</author>
            <guid>https://www.aldolat.it/posts/2015/bloccare-accesso-file-wp-login-php/</guid>
            <description>È da molti mesi che riscontro tentativi continui di accesso non autorizzato alla dashboard di WordPress: qualcuno/qualcosa tenta senza sosta di indovinare il nome utente dell&amp;rsquo;amministratore e della sua password. Me ne accorgo dalle segnalazioni che mi arrivano tramite il plugin Limit login attempts.&#xA;Il plugin, che pare non essere più mantenuto (e per questo motivo cerco un&amp;rsquo;alternativa), fa bene il suo lavoro ma, nonostante ciò, non è bello per me ricevere tutte quelle email giornaliere da parte sua. Per cui ho deciso di risolvere alla base il problema.</description>
            <content:encoded>&lt;figure class=&#34;aligncenter&#34;&gt;&lt;img src=&#34;https://www.aldolat.it/images/2015/01/errore_403.png&#34;&#xA;&#x9;&#x9;&#x9;alt=&#34;errore-403&#34;&gt;&#xA;&lt;/figure&gt;&#xA;&#xA;&lt;p&gt;È da molti mesi che riscontro tentativi continui di accesso non autorizzato alla dashboard di WordPress: qualcuno/qualcosa tenta senza sosta di indovinare il nome utente dell&amp;rsquo;amministratore e della sua password. Me ne accorgo dalle segnalazioni che mi arrivano tramite il plugin &lt;a href=&#34;https://wordpress.org/plugins/limit-login-attempts/&#34;&gt;Limit login attempts&lt;/a&gt;.&lt;/p&gt;&#xA;&lt;p&gt;Il plugin, che pare non essere più mantenuto (e per questo motivo cerco un&amp;rsquo;alternativa), fa bene il suo lavoro ma, nonostante ciò, non è bello per me ricevere tutte quelle email giornaliere da parte sua. Per cui ho deciso di risolvere alla base il problema.&lt;/p&gt;&#xA;&lt;h2 id=&#34;negare-laccesso&#34;&gt;Negare l&amp;rsquo;accesso&lt;/h2&gt;&#xA;&lt;p&gt;Poiché l&amp;rsquo;azione che si tenta è quella di autenticarsi, la via di ingresso è il file &lt;code&gt;wp-login.php&lt;/code&gt;: è sufficiente quindi bloccare l&amp;rsquo;accesso a questo file. Bloccare l&amp;rsquo;accesso al file significa, però, che neanche noi riusciremo a entrare nella dashboard di WordPress: dovremo quindi permettere l&amp;rsquo;accesso al nostro indirizzo IP.&lt;/p&gt;&#xA;&lt;p&gt;Basta aggiungere poche righe al file &lt;code&gt;.htaccess&lt;/code&gt; presente nella directory radice del proprio dominio:&lt;/p&gt;&#xA;&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-text&#34; data-lang=&#34;text&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&amp;lt;Files ~ &amp;#34;wp-login.php&amp;#34;&amp;gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;Order Deny,Allow&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;Deny from all&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;Allow from 12.&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&amp;lt;/Files&amp;gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;Con queste righe stiamo dicendo ad Apache di bloccare l&amp;rsquo;accesso al file &lt;code&gt;wp-login.php&lt;/code&gt; a tutti (&lt;code&gt;Deny from all&lt;/code&gt;) tranne a coloro il cui indirizzo IP inizia con &lt;code&gt;12.&lt;/code&gt; (&lt;code&gt;Allow from 12.&lt;/code&gt;). Chiaramente questo numero è quello che interessa a me, per cui dovete conoscere con quale range di indirizzi generalmente il vostro provider vi fa accedere ad Internet. Se avete un indirizzo IP statico, potete aggiungerlo per intero:&lt;/p&gt;&#xA;&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-text&#34; data-lang=&#34;text&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;Allow from 123.123.123.123&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;A coloro il cui indirizzo IP non inizia con &lt;code&gt;12.&lt;/code&gt; o non è quello esatto che avete definito, Apache restituirà un errore 403 &amp;ldquo;Accesso negato&amp;rdquo;, che eventualmente potete anche personalizzare, se il vostro hosting provider ve lo permette.&lt;/p&gt;&#xA;&lt;p&gt;Una volta messe in opera quelle righe, il log del server mostrerà qualcosa del genere:&lt;/p&gt;&#xA;&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-text&#34; data-lang=&#34;text&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;[Sat Jan 31 02:10:30 2015] [error] [client 5.196.253.201] client denied by server configuration: /path/to/domain.tld/folder/wp-login.php, referer: http://www.domain.tld/&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;[Sat Jan 31 02:10:31 2015] [error] [client 5.196.253.201] client denied by server configuration: /path/to/domain.tld/folder/wp-login.php, referer: http://www.domain.tld/wp-login.php?action=register&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;[Sat Jan 31 02:32:18 2015] [error] [client 192.240.201.20] client denied by server configuration: /path/to/domain.tld/folder/wp-login.php, referer: http://www.domain.tld/&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;[Sat Jan 31 02:32:18 2015] [error] [client 192.240.201.20] client denied by server configuration: /path/to/domain.tld/folder/wp-login.php, referer: http://www.domain.tld/wp-login.php?action=register&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;[Sat Jan 31 03:02:45 2015] [error] [client 104.143.23.249] client denied by server configuration: /path/to/domain.tld/folder/wp-login.php, referer: http://www.domain.tld/&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;[Sat Jan 31 03:02:46 2015] [error] [client 104.143.23.249] client denied by server configuration: /path/to/domain.tld/folder/wp-login.php, referer: http://www.domain.tld/wp-login.php?action=register&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;[Sat Jan 31 03:28:20 2015] [error] [client 173.232.118.182] client denied by server configuration: /path/to/domain.tld/folder/wp-login.php, referer: http://www.domain.tld/&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;[Sat Jan 31 03:28:21 2015] [error] [client 173.232.118.182] client denied by server configuration: /path/to/domain.tld/folder/wp-login.php, referer: http://www.domain.tld/wp-login.php?action=register&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;[Sat Jan 31 03:29:33 2015] [error] [client 198.23.134.163] client denied by server configuration: /path/to/domain.tld/folder/wp-login.php, referer: http://www.domain.tld/&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;[Sat Jan 31 03:29:33 2015] [error] [client 198.23.134.163] client denied by server configuration: /path/to/domain.tld/folder/wp-login.php, referer: http://www.domain.tld/wp-login.php?action=register&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;[Sat Jan 31 03:33:08 2015] [error] [client 37.59.75.59] client denied by server configuration: /path/to/domain.tld/folder/wp-login.php, referer: http://www.domain.tld/&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;[Sat Jan 31 03:33:08 2015] [error] [client 37.59.75.59] client denied by server configuration: /path/to/domain.tld/folder/wp-login.php, referer: http://www.domain.tld/wp-login.php?action=register&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;[Sat Jan 31 03:36:43 2015] [error] [client 88.251.177.222] client denied by server configuration: /path/to/domain.tld/folder/wp-login.php&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;[Sat Jan 31 03:39:33 2015] [error] [client 151.80.69.186] client denied by server configuration: /path/to/domain.tld/folder/wp-login.php, referer: http://www.domain.tld/&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;con la conferma che Apache sta bloccando gli accessi (&lt;em&gt;client denied by server configuration&lt;/em&gt;). E le email di &lt;em&gt;Limit login attempts&lt;/em&gt; sono terminate.&lt;/p&gt;&#xA;&lt;h2 id=&#34;i-motori-di-ricerca&#34;&gt;I motori di ricerca&lt;/h2&gt;&#xA;&lt;p&gt;Per evitare errori di scansione dei motori di ricerca ho inserito nel file &lt;code&gt;robots.txt&lt;/code&gt; due righe che evitino la scansione delle pagine legate all&amp;rsquo;autenticazione, ad esempio:&lt;/p&gt;&#xA;&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-text&#34; data-lang=&#34;text&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;User-agent: *&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;Disallow: /wp-login.php&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;Disallow: /wp-login.php?action=register&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;Chiaramente quanto sopra forse non è la soluzione migliore al problema, ma devo dire che sta funzionando bene per me ed è di facilissima implementazione.&lt;/p&gt;&#xA;&lt;p&gt;L&#39;articolo &lt;a href=&#34;https://www.aldolat.it/posts/2015/bloccare-accesso-file-wp-login-php/&#34;&gt;Bloccare l’accesso al file wp-login.php&lt;/a&gt; è uno scritto di &lt;a href=&#34;https://www.aldolat.it/&#34;&gt;aldolat.it&lt;/a&gt;. Rispettane le &lt;a href=&#34;https://www.aldolat.it/info/#licenza&#34;&gt;condizioni di licenza&lt;/a&gt;.&lt;/p&gt;</content:encoded>
        </item>
        <item>
            <title>htaccess made easy</title>
            <link>https://www.aldolat.it/posts/2012/htaccess-made-easy/</link>
            <pubDate>Mon, 24 Dec 2012 17:51:10 +0000</pubDate>
            <author>aldolat@gmail.com (Aldo Latino)</author>
            <guid>https://www.aldolat.it/posts/2012/htaccess-made-easy/</guid>
            <description>La copertina di .htaccess made easy.&#xA;Chiunque abbia un blog o un sito qualsiasi su un proprio dominio avrà avuto forse a che fare con il famigerato file .htaccess o quantomeno ne avrà sentito parlare. Questo file, di cui anche in questo blog qua e là si è parlato, è quello che permette di modificare la configurazione del proprio server a livello di singole directory. È talmente potente da permetterci tantissime operazioni sulle funzionalità di Apache e tutti possono trarre beneficio da semplici modifiche su un file di testo. Certamente è bene sapere cosa si sta facendo perché un solo carattere sbagliato potrebbe mandare in errore un intero dominio. Le pubblicazioni in merito non mancano, ma ve ne voglio segnalare una in particolare.</description>
            <content:encoded>&lt;figure class=&#34;alignleft&#34;&gt;&lt;img src=&#34;https://www.aldolat.it/images/2012/12/htaccess-made-easy-250.webp&#34;&#xA;&#x9;&#x9;&#x9;alt=&#34;La copertina di .htaccess made easy.&#34; width=&#34;250&#34; height=&#34;198&#34;&gt;&lt;figcaption&gt;&#xA;&#x9;&#x9;&#x9;&lt;p&gt;La copertina di .htaccess made easy.&lt;/p&gt;&#xA;&#x9;&#x9;&lt;/figcaption&gt;&#xA;&lt;/figure&gt;&#xA;&#xA;&lt;p&gt;Chiunque abbia un blog o un sito qualsiasi su un proprio dominio avrà avuto forse a che fare con il famigerato file &lt;code&gt;.htaccess&lt;/code&gt; o quantomeno ne avrà sentito parlare. Questo file, di cui anche in questo blog &lt;a href=&#34;https://www.aldolat.it/tags/htaccess/&#34;&gt;qua e là&lt;/a&gt; si è parlato, è quello che permette di modificare la configurazione del proprio server a livello di singole directory. È talmente potente da permetterci tantissime operazioni sulle funzionalità di Apache e tutti possono trarre beneficio da semplici modifiche su un file di testo. Certamente è bene sapere cosa si sta facendo perché un solo carattere sbagliato potrebbe mandare in errore un intero dominio. Le pubblicazioni in merito non mancano, ma ve ne voglio segnalare una in particolare.&lt;/p&gt;&#xA;&lt;p&gt;&lt;em&gt;&lt;a href=&#34;http://htaccessbook.com/&#34;&gt;.htaccess made easy&lt;/a&gt;&lt;/em&gt; è l&amp;rsquo;ultima fatica di Jeff Starr, profondo conoscitore di Apache e &amp;mdash; come già si saprà &amp;mdash; anche di WordPress. Il suo libro, disponibile sia in versione PDF che su carta, copre tantissime circostanze in cui un amministratore potrebbe trovarsi: reindirizzamento, personalizzazione, ottimizzazione, sicurezza, SEO. È una guida pratica, da consultazione, da tenere a portata di mano. È scritto in inglese ma lo stile è semplice e graficamente accattivante, ricco di consigli e note a margine. Qualche giorno fa, ad esempio, dovevo rendere disponibile pubblicamente una directory su un dominio. Il server era configurato per negare il &lt;em&gt;listing&lt;/em&gt; delle directory. È bastata una riga di &lt;code&gt;.htaccess&lt;/code&gt; per farlo:&lt;/p&gt;&#xA;&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-text&#34; data-lang=&#34;text&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;Options All +Indexes&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;Il libro è venduto dallo stesso Jeff in un suo sito dedicato e attualmente la versione digitale in PDF costa 20 dollari, anziché 25. Come dicevo è disponibile anche la versione stampata, in offerta attualmente al costo di 40 dollari.&lt;/p&gt;&#xA;&lt;p&gt;Per vedere quali argomenti affronta, si può scaricare il PDF demo, che contiene tutto il sommario. Ecco alcun screenshot tratti da questo file:&lt;/p&gt;&#xA;&#xA;&#xA;    &#xA;&#xA;&#xA;&lt;div class=&#34;gallery twocols&#34;&gt;&#xA;    &#xA;&#xA;&lt;figure class=&#34;aligncenter&#34;&gt;&lt;a href=&#34;https://www.aldolat.it/images/2012/12/htaccess-made-easy.webp&#34;&gt;&lt;img src=&#34;https://www.aldolat.it/images/2012/12/htaccess-made-easy.webp&#34;&gt;&lt;/a&gt;&#xA;&lt;/figure&gt;&#xA;&#xA;&lt;figure class=&#34;aligncenter&#34;&gt;&lt;a href=&#34;https://www.aldolat.it/images/2012/12/htaccess_1.webp&#34;&gt;&lt;img src=&#34;https://www.aldolat.it/images/2012/12/htaccess_1.webp&#34;&gt;&lt;/a&gt;&#xA;&lt;/figure&gt;&#xA;&#xA;&lt;figure class=&#34;aligncenter&#34;&gt;&lt;a href=&#34;https://www.aldolat.it/images/2012/12/htaccess_2.webp&#34;&gt;&lt;img src=&#34;https://www.aldolat.it/images/2012/12/htaccess_2.webp&#34;&gt;&lt;/a&gt;&#xA;&lt;/figure&gt;&#xA;&#xA;&lt;figure class=&#34;aligncenter&#34;&gt;&lt;a href=&#34;https://www.aldolat.it/images/2012/12/htaccess_3.webp&#34;&gt;&lt;img src=&#34;https://www.aldolat.it/images/2012/12/htaccess_3.webp&#34;&gt;&lt;/a&gt;&#xA;&lt;/figure&gt;&#xA;&#xA;&lt;figure class=&#34;aligncenter&#34;&gt;&lt;a href=&#34;https://www.aldolat.it/images/2012/12/htaccess_4.webp&#34;&gt;&lt;img src=&#34;https://www.aldolat.it/images/2012/12/htaccess_4.webp&#34;&gt;&lt;/a&gt;&#xA;&lt;/figure&gt;&#xA;&#xA;&lt;figure class=&#34;aligncenter&#34;&gt;&lt;a href=&#34;https://www.aldolat.it/images/2012/12/htaccess_5.webp&#34;&gt;&lt;img src=&#34;https://www.aldolat.it/images/2012/12/htaccess_5.webp&#34;&gt;&lt;/a&gt;&#xA;&lt;/figure&gt;&#xA;&#xA;&lt;figure class=&#34;aligncenter&#34;&gt;&lt;a href=&#34;https://www.aldolat.it/images/2012/12/htaccess_7.webp&#34;&gt;&lt;img src=&#34;https://www.aldolat.it/images/2012/12/htaccess_7.webp&#34;&gt;&lt;/a&gt;&#xA;&lt;/figure&gt;&#xA;&#xA;&lt;figure class=&#34;aligncenter&#34;&gt;&lt;a href=&#34;https://www.aldolat.it/images/2012/12/htaccess_8.webp&#34;&gt;&lt;img src=&#34;https://www.aldolat.it/images/2012/12/htaccess_8.webp&#34;&gt;&lt;/a&gt;&#xA;&lt;/figure&gt;&#xA;&#xA;&#xA;&#xA;&lt;/div&gt;&#xA;&#xA;&lt;p&gt;Consigliato vivamente!&lt;/p&gt;&#xA;&lt;p&gt;L&#39;articolo &lt;a href=&#34;https://www.aldolat.it/posts/2012/htaccess-made-easy/&#34;&gt;htaccess made easy&lt;/a&gt; è uno scritto di &lt;a href=&#34;https://www.aldolat.it/&#34;&gt;aldolat.it&lt;/a&gt;. Rispettane le &lt;a href=&#34;https://www.aldolat.it/info/#licenza&#34;&gt;condizioni di licenza&lt;/a&gt;.&lt;/p&gt;</content:encoded>
        </item>
        <item>
            <title>Aggiornare .htaccess al nuovo indirizzo di FeedBurner</title>
            <link>https://www.aldolat.it/posts/2009/aggiornare-htaccess-al-nuovo-indirizzo-di-feedburner/</link>
            <pubDate>Fri, 23 Jan 2009 09:40:15 +0000</pubDate>
            <author>aldolat@gmail.com (Aldo Latino)</author>
            <guid>https://www.aldolat.it/posts/2009/aggiornare-htaccess-al-nuovo-indirizzo-di-feedburner/</guid>
            <description>I feed principali di questo blog sono gestiti da FeedBurner che, come saprete, è stata acquisita da Google. Proprio ieri, leggendo alcune pagine del servizio, mi sono ricordato che a breve tutti i feed sarebbero stati spostati verso il nuovo indirizzo, se non erro entro la fine di febbraio prossimo. Mi sono deciso dunque a trasferire subito i feed, visto che Google dava la possibilità di farlo. Il passaggio è stato assolutamente indolore: solo per un paio di feed ho atteso qualche minuto in più perché essi fossero di nuovo raggiungibili.</description>
            <content:encoded>&lt;p&gt;I feed principali di questo blog sono gestiti da FeedBurner che, come saprete, è stata acquisita da Google. Proprio ieri, leggendo alcune pagine del servizio, mi sono ricordato che a breve tutti i feed sarebbero stati spostati verso il nuovo indirizzo, se non erro entro la fine di febbraio prossimo. Mi sono deciso dunque a trasferire subito i feed, visto che Google dava la possibilità di farlo. Il passaggio è stato assolutamente indolore: solo per un paio di feed ho atteso qualche minuto in più perché essi fossero di nuovo raggiungibili.&lt;/p&gt;&#xA;&lt;p&gt;In questo passaggio ho dovuto aggiornare anche alcune regole presenti nel mio &lt;code&gt;.htaccess&lt;/code&gt;, in particolare quella che mi reindirizza le richieste di abbonamento ai feed verso FeedBurner e quella che mi protegge dall&amp;rsquo;hotlinking. Vi riporto le modifiche eseguite perché magari vi può tornare utile.&lt;/p&gt;&#xA;&lt;h3 id=&#34;feedburner&#34;&gt;FeedBurner&lt;/h3&gt;&#xA;&lt;p&gt;L&amp;rsquo;URL di FeedBurner cambia: dal vecchio &lt;a href=&#34;http://feeds.feedburner.com&#34;&gt;http://feeds.feedburner.com&lt;/a&gt; si passa a &lt;a href=&#34;http://feeds2.feedburner.com&#34;&gt;http://feeds2.feedburner.com&lt;/a&gt; seguito dal nome scelto per il feed. Se usate &lt;code&gt;.htaccess&lt;/code&gt; per reindirizzare i feed, cambiate le righe relative. Ecco un esempio di un blocco di regole:&lt;/p&gt;&#xA;&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-apache&#34; data-lang=&#34;apache&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;c&#34;&gt;### INIZIA REDIRECT DEI FEED DI WORDPRESS VERSO FEEDBURNER ###&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;nt&#34;&gt;&amp;lt;IfModule&lt;/span&gt; &lt;span class=&#34;s&#34;&gt;mod_rewrite.c&lt;/span&gt;&lt;span class=&#34;nt&#34;&gt;&amp;gt;&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;nb&#34;&gt;RewriteEngine&lt;/span&gt; &lt;span class=&#34;k&#34;&gt;on&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;nb&#34;&gt;RewriteCond&lt;/span&gt; %{HTTP_USER_AGENT} !^.*(FeedBurner|FeedValidator) [NC]&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;c&#34;&gt;## POSTS&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;nb&#34;&gt;RewriteRule&lt;/span&gt; ^feed/*$ http://feeds2.feedburner.com/miei-articoli [L,NC,R=302]&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;c&#34;&gt;## COMMENTI&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;nb&#34;&gt;RewriteRule&lt;/span&gt; ^comments/feed/*$ http://feeds2.feedburner.com/miei-commenti [L,NC,R=302]&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;c&#34;&gt;## TAG&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;nb&#34;&gt;RewriteRule&lt;/span&gt; ^tag/mio-tag/feed/*$ http://feeds2.feedburner.com/mio-tag [L,NC,R=302]&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;c&#34;&gt;## CATEGORIE&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;nb&#34;&gt;RewriteRule&lt;/span&gt; ^category/mia-categoria/feed/*$ http://feeds2.feedburner.com/mia-categoria [L,NC,R=302]&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;nt&#34;&gt;&amp;lt;/IfModule&amp;gt;&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;c&#34;&gt;### FINISCE REDIRECT DEI FEED DI WORDPRESS VERSO FEEDBURNER ###&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;Rispetto a &lt;a href=&#34;https://www.aldolat.it/posts/2008/guide-e-howto/wordpress-e-htaccess/&#34;&gt;quanto scrissi&lt;/a&gt; tempo fa, ho apportato qualche piccola modifica. Anzitutto ho riunito le due righe di esclusione dal redirect dello stesso servizio FeedBurner (riga 4). Poi, alle righe 6, 8, 10 e 12 notate il nuovo indirizzo cui redirigere chi si abbona. Ho infine aggiunto un esempio su come reindirizzare chi si volesse abbonare a un vostro particolare tag oppure a una delle categorie. Occhio a personalizzare correttamente l&amp;rsquo;URL del vostro feed originale (quello di sinistra) con l&amp;rsquo;URL del feed corrispondente su FeedBurner. Penso non ci siano dubbi su come farlo. 🙂&lt;/p&gt;&#xA;&lt;h3 id=&#34;hotlinking&#34;&gt;Hotlinking&lt;/h3&gt;&#xA;&lt;p&gt;Anche qui, se avete implementato questa preziosa regola, dovete intervenire. Se avete usato il mio &lt;a href=&#34;https://www.aldolat.it/posts/2008/guide-e-howto/wordpress-e-htaccess/&#34;&gt;precedente suggerimento&lt;/a&gt;, cambiate queste righe&lt;/p&gt;&#xA;&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-apache&#34; data-lang=&#34;apache&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;nb&#34;&gt;RewriteCond&lt;/span&gt; %{HTTP_REFERER} !^http://www.feedburner.com/.*$ [NC]&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;nb&#34;&gt;RewriteCond&lt;/span&gt; %{HTTP_REFERER} !^http://feeds.feedburner.com/vostro-nick$ [NC]&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;con queste&lt;/p&gt;&#xA;&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-apache&#34; data-lang=&#34;apache&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;nb&#34;&gt;RewriteCond&lt;/span&gt; %{HTTP_REFERER} !^http://www.feedburner.com/.*$ [NC]&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;nb&#34;&gt;RewriteCond&lt;/span&gt; %{HTTP_REFERER} !^http://feedburner.google.com/.*$ [NC]&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;nb&#34;&gt;RewriteCond&lt;/span&gt; %{HTTP_REFERER} !^http://feeds2.feedburner.com/.*$ [NC]&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;Vi riporto un esempio completo di regola di hotlinking, in modo da fugare dubbi su come scriverle:&lt;/p&gt;&#xA;&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-apache&#34; data-lang=&#34;apache&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;c&#34;&gt;### INIZIA PROTEZIONE HOTLINK ###&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;nt&#34;&gt;&amp;lt;IfModule&lt;/span&gt; &lt;span class=&#34;s&#34;&gt;mod_rewrite.c&lt;/span&gt;&lt;span class=&#34;nt&#34;&gt;&amp;gt;&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;nb&#34;&gt;RewriteEngine&lt;/span&gt; &lt;span class=&#34;k&#34;&gt;on&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;nb&#34;&gt;RewriteCond&lt;/span&gt; %{HTTP_REFERER} !^$&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;nb&#34;&gt;RewriteCond&lt;/span&gt; %{REQUEST_FILENAME} -f&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;nb&#34;&gt;RewriteCond&lt;/span&gt; %{REQUEST_FILENAME} .(gif|jpe?g?|png)$                     [NC]&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;c&#34;&gt;# Sostituire mio-dominio con il proprio dominio (solo il nome senza estensione)&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;nb&#34;&gt;RewriteCond&lt;/span&gt; %{HTTP_REFERER} !^https?://([^.]+.)?mio-dominio.           [NC]&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;c&#34;&gt;# Permette a  FeedBurner di accedere alle immagini&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;nb&#34;&gt;RewriteCond&lt;/span&gt; %{HTTP_REFERER} !^http://www.feedburner.com/.*$            [NC]&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;nb&#34;&gt;RewriteCond&lt;/span&gt; %{HTTP_REFERER} !^http://feedburner.google.com/.*$         [NC]&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;nb&#34;&gt;RewriteCond&lt;/span&gt; %{HTTP_REFERER} !^http://feeds2.feedburner.com/.*$         [NC]&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;c&#34;&gt;# Permette a Google Reader di accedere alle immagini&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;nb&#34;&gt;RewriteCond&lt;/span&gt; %{HTTP_REFERER} !^http://www.google.com/reader/view/.*$    [NC]&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;nb&#34;&gt;RewriteCond&lt;/span&gt; %{HTTP_REFERER} !^http://www.google.com/reader/m/view/.*$  [NC]&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;c&#34;&gt;# Permette ai motori di ricerca di accedere alle immagini&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;nb&#34;&gt;RewriteCond&lt;/span&gt; %{HTTP_REFERER} !search?q=cache                            [NC]&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;nb&#34;&gt;RewriteCond&lt;/span&gt; %{HTTP_REFERER} !google.                                   [NC]&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;nb&#34;&gt;RewriteCond&lt;/span&gt; %{HTTP_REFERER} !yahoo.                                    [NC]&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;c&#34;&gt;# Permette che solo questa immagine venga visualizzata&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;c&#34;&gt;# (modificare l&amp;#39;indirizzo sottostante con quello corretto)&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;nb&#34;&gt;RewriteCond&lt;/span&gt; %{REQUEST_URI}  !^/percorso-a/mia-immagine.png$            [NC]&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;c&#34;&gt;# Decommentare la riga 32 se non si vuole far visualizzare nulla&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;c&#34;&gt;# e commentare la riga 38&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;c&#34;&gt;# RewriteRule .(gif|jpe?g?|png)$ -                                 [F,NC,L]&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;c&#34;&gt;# Oppure se si vuole far visualizzare una immagine,&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;c&#34;&gt;# inserire qui il link (quella inserita nella regola col Request_URI)&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;c&#34;&gt;# oppure ancora se si preferisce reindirizzare a una immagine esterna al proprio spazio&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;c&#34;&gt;# inserirne il link&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;nb&#34;&gt;RewriteRule&lt;/span&gt; .(gif|jpe?g?|png)$ http://www.mio-dominio.it/percorso-a/mia-immagine.png [R,NC,L]&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;nt&#34;&gt;&amp;lt;/ifModule&amp;gt;&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;c&#34;&gt;### FINISCE PROTEZIONE HOTLINK ###&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;Ho commentato tra le righe i vari passaggi che penso siano chiari. Per verificare che la protezione dall&amp;rsquo;hotlinking funzioni a dovere, recatevi &lt;a href=&#34;http://altlab.com/hotlinkchecker.php&#34;&gt;qui&lt;/a&gt; e inserite nel campo apposito l&amp;rsquo;URL di una delle immagini che avete nel vostro blog. Prima di premere su &amp;ldquo;Check Link&amp;rdquo; svuotate la cache del browser, altrimenti vedrete l&amp;rsquo;immagine prelevata dal vostro disco.&lt;/p&gt;&#xA;&lt;p&gt;L&#39;articolo &lt;a href=&#34;https://www.aldolat.it/posts/2009/aggiornare-htaccess-al-nuovo-indirizzo-di-feedburner/&#34;&gt;Aggiornare .htaccess al nuovo indirizzo di FeedBurner&lt;/a&gt; è uno scritto di &lt;a href=&#34;https://www.aldolat.it/&#34;&gt;aldolat.it&lt;/a&gt;. Rispettane le &lt;a href=&#34;https://www.aldolat.it/info/#licenza&#34;&gt;condizioni di licenza&lt;/a&gt;.&lt;/p&gt;</content:encoded>
        </item>
        <item>
            <title>3 funzioni per WordPress senza l’uso di alcun plugin</title>
            <link>https://www.aldolat.it/posts/2009/3-funzioni-per-wordpress-senza-luso-di-alcun-plugin/</link>
            <pubDate>Fri, 02 Jan 2009 11:48:30 +0000</pubDate>
            <author>aldolat@gmail.com (Aldo Latino)</author>
            <guid>https://www.aldolat.it/posts/2009/3-funzioni-per-wordpress-senza-luso-di-alcun-plugin/</guid>
            <description>WordPress, splendida piattaforma open source orientata al blogging, consente di estenderne le potenzialità installando plugin per uno specifico scopo. Installare un plugin è spesso l&amp;rsquo;unica soluzione per poter avere una particolare funzione, necessaria nel nostro blog; ma in tanti casi è sufficiente mettere mano al codice del nostro tema per poter implementare la stessa identica funzione senza installare nulla di aggiuntivo (come ho più volte scritto: qui, qui e qui). Ecco 3 esempi.</description>
            <content:encoded>&lt;figure class=&#34;alignleft&#34;&gt;&lt;img src=&#34;https://www.aldolat.it/images/2012/04/wordpress-dkblue-orange.png&#34;&gt;&#xA;&lt;/figure&gt;&#xA;&#xA;&lt;p&gt;WordPress, splendida piattaforma open source orientata al blogging, consente di estenderne le potenzialità installando plugin per uno specifico scopo. Installare un plugin è spesso l&amp;rsquo;unica soluzione per poter avere una particolare funzione, necessaria nel nostro blog; ma in tanti casi è sufficiente mettere mano al codice del nostro tema per poter implementare la stessa identica funzione senza installare nulla di aggiuntivo (come ho più volte scritto: &lt;a href=&#34;https://www.aldolat.it/posts/2008/un-badge-digg-senza-plugin/&#34;&gt;qui&lt;/a&gt;, &lt;a href=&#34;https://www.aldolat.it/posts/2008/featured-posts-senza-alcun-plugin/&#34;&gt;qui&lt;/a&gt; e &lt;a href=&#34;https://www.aldolat.it/posts/2008/gravatar-senza-plugin-2/&#34;&gt;qui&lt;/a&gt;). Ecco 3 esempi.&lt;/p&gt;&#xA;&lt;h3 id=&#34;visualizzare-data-e-ora-dellultima-modifica&#34;&gt;Visualizzare data e ora dell&amp;rsquo;ultima modifica&lt;/h3&gt;&#xA;&lt;p&gt;Credo sia utile per i nostri lettori sapere se un articolo è stato modificato dalla loro ultima visita, specie se un blog tratta argomenti di natura tecnica. L&amp;rsquo;autore potrebbe commettere un errore nel riportare codice o altro, per cui il lettore saprebbe se l&amp;rsquo;articolo è stato rivisto o no.&lt;/p&gt;&#xA;&lt;p&gt;Ecco il codice PHP che potete incollare nel punto del vostro tema dove volete appaia l&amp;rsquo;informazione (generalmente è utile nella sezione “postmetadata”. Da notare che l&amp;rsquo;informazione apparirà &lt;strong&gt;soltanto se&lt;/strong&gt; l&amp;rsquo;articolo è stato modificato.&lt;/p&gt;&#xA;&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-php&#34; data-lang=&#34;php&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;o&#34;&gt;&amp;lt;?&lt;/span&gt;&lt;span class=&#34;nx&#34;&gt;php&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;  &lt;span class=&#34;nv&#34;&gt;$x&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;=&lt;/span&gt; &lt;span class=&#34;nx&#34;&gt;get_the_time&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;s1&#34;&gt;&amp;#39;U&amp;#39;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;);&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;  &lt;span class=&#34;nv&#34;&gt;$m&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;=&lt;/span&gt; &lt;span class=&#34;nx&#34;&gt;get_the_modified_time&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;s1&#34;&gt;&amp;#39;U&amp;#39;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;);&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;  &lt;span class=&#34;k&#34;&gt;if&lt;/span&gt; &lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;nv&#34;&gt;$m&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;!=&lt;/span&gt; &lt;span class=&#34;nv&#34;&gt;$x&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;)&lt;/span&gt; &lt;span class=&#34;p&#34;&gt;{&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;k&#34;&gt;echo&lt;/span&gt; &lt;span class=&#34;s1&#34;&gt;&amp;#39;Ultima modifica: &amp;#39;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;;&lt;/span&gt; &lt;span class=&#34;nx&#34;&gt;the_modified_time&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;s1&#34;&gt;&amp;#39;j F Y H,i&amp;#39;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;);&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;  &lt;span class=&#34;p&#34;&gt;}&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;cp&#34;&gt;?&amp;gt;&lt;/span&gt;&lt;span class=&#34;err&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;Le righe 2 e 3 interrogano il database sulle due date di creazione e modifica dell&amp;rsquo;articolo e le assegna a due variabili. La riga 4 controlla se le due date sono diverse; se sono diverse, visualizzerà la riga 5.&lt;/p&gt;&#xA;&lt;h3 id=&#34;visualizzare-citazioni-a-caso&#34;&gt;Visualizzare citazioni a caso&lt;/h3&gt;&#xA;&lt;p&gt;Se vi piace poter visualizzare alcune citazioni nel vostro sito, scelte a caso tra una serie preimpostata, allora queste poche righe vi saranno utili.&lt;/p&gt;&#xA;&lt;p&gt;Create un file di puro testo dove inserire le vostre citazioni. Scrivete una citazione in ogni riga, ad esempio:&lt;/p&gt;&#xA;&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-text&#34; data-lang=&#34;text&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;Citazione 1&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;Citazione 2&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;Citazione 3&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;e così via...&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;La funzione, infatti, preleverà a caso una di queste righe e le mostrerà nella pagina. Salvato il file, caricatelo via FTP nel vostro server.&lt;/p&gt;&#xA;&lt;p&gt;Ora copiate queste righe:&lt;/p&gt;&#xA;&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-php&#34; data-lang=&#34;php&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;o&#34;&gt;&amp;lt;?&lt;/span&gt;&lt;span class=&#34;nx&#34;&gt;php&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;nv&#34;&gt;$file&lt;/span&gt;  &lt;span class=&#34;o&#34;&gt;=&lt;/span&gt; &lt;span class=&#34;s2&#34;&gt;&amp;#34;http://www.example.com/citazioni/citazioni.txt&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;;&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;nv&#34;&gt;$quote&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;=&lt;/span&gt; &lt;span class=&#34;nx&#34;&gt;file&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;nv&#34;&gt;$file&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;);&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;k&#34;&gt;echo&lt;/span&gt; &lt;span class=&#34;nv&#34;&gt;$quote&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;[&lt;/span&gt;&lt;span class=&#34;nx&#34;&gt;array_rand&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;nv&#34;&gt;$quote&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;)];&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;cp&#34;&gt;?&amp;gt;&lt;/span&gt;&lt;span class=&#34;err&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;e prima di incollarle, modificate il valore della variabile &lt;code&gt;$file&lt;/code&gt; alla riga 2, mettendo l&amp;rsquo;URL corretto che punta al file di testo. Incollate le righe di codice nel file del tema dove volete che appaiano le citazioni (generalmente l&amp;rsquo;&lt;code&gt;header.php&lt;/code&gt; o &lt;code&gt;sidebar.php&lt;/code&gt; o &lt;code&gt;footer.php&lt;/code&gt;), salvatelo e provatelo.&lt;/p&gt;&#xA;&lt;h3 id=&#34;redirigere-i-propri-feeds-su-feedburner&#34;&gt;Redirigere i propri feeds su FeedBurner&lt;/h3&gt;&#xA;&lt;div class=&#34;note warning&#34;&gt;&#xA;    &#xA;    &lt;p class=&#34;aside&#34;&gt;&#xA;        Attenzione! L&amp;rsquo;URL di FeedBurner è cambiato! &lt;a href=&#34;https://www.aldolat.it/posts/2009/aggiornare-htaccess-al-nuovo-indirizzo-di-feedburner/&#34;&gt;Leggi questo post&lt;/a&gt; in cui scrivo anche come adattare &lt;code&gt;.htaccess&lt;/code&gt;.&#xA;    &lt;/p&gt;&#xA;&lt;/div&gt;&#xA;&#xA;&lt;p&gt;Se volete delegare FeedBurner per la gestione del vostro feed WordPress, potete utilizzare il plugin ufficiale &lt;a href=&#34;http://www.google.com/support/feedburner/bin/topic.py?topic=13252&#34;&gt;FeedSmith&lt;/a&gt; (che ho usato anch&amp;rsquo;io fino a qualche tempo fa), oppure potete evitarlo modificando il vostro file &lt;code&gt;.htaccess&lt;/code&gt;, che, come sapete, fornisce istruzioni locali al server Apache.&lt;/p&gt;&#xA;&lt;p&gt;Ecco il codice:&lt;/p&gt;&#xA;&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-apache&#34; data-lang=&#34;apache&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;c&#34;&gt;### INIZIA IL REDIRECT DEL FEED WORDPRESS VERSO FEEDBURNER ###&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;nt&#34;&gt;&amp;lt;IfModule&lt;/span&gt; &lt;span class=&#34;s&#34;&gt;mod_rewrite.c&lt;/span&gt;&lt;span class=&#34;nt&#34;&gt;&amp;gt;&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;  &lt;span class=&#34;nb&#34;&gt;RewriteEngine&lt;/span&gt; &lt;span class=&#34;k&#34;&gt;on&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;  &lt;span class=&#34;nb&#34;&gt;RewriteCond&lt;/span&gt; %{HTTP_USER_AGENT} !FeedBurner [NC]&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;  &lt;span class=&#34;nb&#34;&gt;RewriteCond&lt;/span&gt; %{HTTP_USER_AGENT} !FeedValidator [NC]&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;  &lt;span class=&#34;c&#34;&gt;# ARTICOLI&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;  &lt;span class=&#34;nb&#34;&gt;RewriteRule&lt;/span&gt; ^feed/?([_0-9a-z-]+)?/?$ http://feeds.feedburner.com/miofeed1 [R=302,NC,L]&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;  &lt;span class=&#34;c&#34;&gt;# COMMENTI&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;  &lt;span class=&#34;nb&#34;&gt;RewriteRule&lt;/span&gt; ^comments/feed/?([_0-9a-z-]+)?/?$ http://feeds.feedburner.com/miofeed2 [R=302,NC,L]&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;  &lt;span class=&#34;c&#34;&gt;### FINISCE IL REDIRECT DEL FEED WORDPRESS VERSO FEEDBURNER ###&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;nt&#34;&gt;&amp;lt;/IfModule&amp;gt;&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;Assicuratevi di modificare nelle righe 7 e 9 la dicitura &lt;code&gt;miofeed1&lt;/code&gt; e &lt;code&gt;miofeed2&lt;/code&gt; con il nome corretto che avete creato in FeedBurner. Con queste regole, delegherete FeedBurner per la gestione dei feed degli articoli e dei commenti. Se non volete redirezionare il feed dei commenti, potete eliminare (o commentare con un &lt;code&gt;#&lt;/code&gt; ad inizio riga) le righe 8 e 9.&lt;/p&gt;&#xA;&lt;p class=&#34;fonte&#34;&gt;Fonte: &lt;a href=&#34;http://perishablepress.com/press/2007/12/18/optimize-wordpress-pure-code-alternatives-for-7-unnecessary-plugins/&#34;&gt;Perishable Press&lt;/a&gt;, con qualche modifica alle righe di codice.&lt;/p&gt;&#xA;&lt;p&gt;L&#39;articolo &lt;a href=&#34;https://www.aldolat.it/posts/2009/3-funzioni-per-wordpress-senza-luso-di-alcun-plugin/&#34;&gt;3 funzioni per WordPress senza l’uso di alcun plugin&lt;/a&gt; è uno scritto di &lt;a href=&#34;https://www.aldolat.it/&#34;&gt;aldolat.it&lt;/a&gt;. Rispettane le &lt;a href=&#34;https://www.aldolat.it/info/#licenza&#34;&gt;condizioni di licenza&lt;/a&gt;.&lt;/p&gt;</content:encoded>
        </item>
        <item>
            <title>WordPress e htaccess</title>
            <link>https://www.aldolat.it/posts/2008/wordpress-e-htaccess/</link>
            <pubDate>Fri, 22 Aug 2008 14:58:36 +0000</pubDate>
            <author>aldolat@gmail.com (Aldo Latino)</author>
            <guid>https://www.aldolat.it/posts/2008/wordpress-e-htaccess/</guid>
            <description>Sto cominciando ad interessarmi ad htaccess che, come sapete, consente di impostare le regole per l&amp;rsquo;accesso alle directory presenti nel proprio spazio sul server web. Se volete, ad esempio, impedire momentaneamente l&amp;rsquo;accesso ai file del vostro sito o volete impedire l&amp;rsquo;hotlinking delle vostre immagini o volete impedire l&amp;rsquo;accesso a chi proviene da un particolare sito che vi linka&amp;hellip; potete farlo impostando le regole specifiche nel file .htaccess presente (si spera) nella root del vostro blog/sito. Sono tantissime le cose che potete impostare: qui me ne sono appuntate alcune che condivido con voi. Ovviamente per fare una determinata operazione si può scrivere una regola in un modo o in un altro: l&amp;rsquo;importante è ottenere lo stesso effetto.</description>
            <content:encoded>&lt;p&gt;Sto cominciando ad interessarmi ad &lt;a href=&#34;http://en.wikipedia.org/wiki/Htaccess&#34;&gt;htaccess&lt;/a&gt; che, come sapete, consente di impostare le regole per l&amp;rsquo;accesso alle directory presenti nel proprio spazio sul server web. Se volete, ad esempio, impedire momentaneamente l&amp;rsquo;accesso ai file del vostro sito o volete impedire l&amp;rsquo;&lt;a href=&#34;http://en.wikipedia.org/wiki/Hotlinking&#34;&gt;hotlinking&lt;/a&gt; delle vostre immagini o volete impedire l&amp;rsquo;accesso a chi proviene da un particolare sito che vi linka&amp;hellip; potete farlo impostando le regole specifiche nel file &lt;code&gt;.htaccess&lt;/code&gt; presente (si spera) nella root del vostro blog/sito. Sono tantissime le cose che potete impostare: qui me ne sono appuntate alcune che condivido con voi. Ovviamente per fare una determinata operazione si può scrivere una regola in un modo o in un altro: l&amp;rsquo;importante è ottenere lo stesso effetto.&lt;/p&gt;&#xA;&lt;p&gt;È un argomento del tutto nuovo per me e, per questo, mi sono documentato un po&amp;rsquo; in rete: ho trovato estremamente interessante il &lt;a href=&#34;http://perishablepress.com/press/&#34;&gt;blog di Perishable&lt;/a&gt;, una vera miniera! Potete dare un&amp;rsquo;occhiata anche al &lt;a href=&#34;http://delicious.com/aldolat/htaccess&#34;&gt;tag htaccess&lt;/a&gt; dei miei bookmark su Delicious.&lt;/p&gt;&#xA;&lt;p&gt;Il titolo di questo articolo, forse, non è appropriatissimo, visto che le regole che si impostano qui valgono per qualunque sito anche non gestito da questo CMS.&lt;/p&gt;&#xA;&lt;h2 id=&#34;lhtaccess-di-wordpress&#34;&gt;L&amp;rsquo;.htaccess di WordPress&lt;/h2&gt;&#xA;&lt;p&gt;Quando installiamo WordPress per la prima volta, dovremmo trovare automaticamente un nuovo file nella nostra root chiamato &lt;code&gt;.htaccess&lt;/code&gt;, contenente le regole di base. Qualora non ci fosse (molto strano), WordPress ne genera uno se andiamo nella pagina Permalink del pannello di amministrazione e facciamo clic su Salva le modifiche, anche senza aver modificato nulla. WordPress, in questo caso:&lt;/p&gt;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;se il file esiste, aggiunge le sue regole in coda;&lt;/li&gt;&#xA;&lt;li&gt;se il file non esiste, ne genera uno.&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;&lt;p&gt;Ecco le regole che imposta:&lt;/p&gt;&#xA;&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-text&#34; data-lang=&#34;text&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;# BEGIN WordPress&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&amp;lt;IfModule mod_rewrite.c&amp;gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;  RewriteEngine On&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;  RewriteBase /&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;  RewriteCond %{REQUEST_FILENAME} !-f&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;  RewriteCond %{REQUEST_FILENAME} !-d&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;  RewriteRule . /index.php [L]&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&amp;lt;/IfModule&amp;gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;# END WordPress&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h2 id=&#34;impediamo-lhotlinking&#34;&gt;Impediamo l&amp;rsquo;hotlinking&lt;/h2&gt;&#xA;&lt;p&gt;L&amp;rsquo;hotlinking è, in parole dure, un &lt;em&gt;furto di banda&lt;/em&gt;. Capita che qualche blogger sia interessato ad un nostro articolo e faccia copia e incolla dell&amp;rsquo;articolo, portandosi dietro anche il codice che linka ad una eventuale nostra immagine che risiede nel nostro server. In questo modo, quando si visualizza l&amp;rsquo;immagine nel suo blog, questa viene prelevata dal nostro sito, utilizzando dunque banda nostra.&lt;/p&gt;&#xA;&lt;p&gt;Per impedire ciò aggiungiamo queste regole al file &lt;code&gt;.htaccess&lt;/code&gt;:&lt;/p&gt;&#xA;&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-text&#34; data-lang=&#34;text&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;### PROTEZIONE HOTLINK ###&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&amp;lt;IfModule mod_rewrite.c&amp;gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;  RewriteEngine on&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;  RewriteCond %{HTTP_REFERER}     !^$&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;  RewriteCond %{REQUEST_FILENAME} -f&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;  RewriteCond %{REQUEST_FILENAME} \.(gif|jpe?g?|png)$ [NC]&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;  RewriteCond %{HTTP_REFERER}     !^https?://([^.]+\.)?dominio\. [NC]&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;  RewriteRule \.(gif|jpe?g?|png)$ - [F,NC,L]&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&amp;lt;/ifModule&amp;gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;Vediamo cosa significano le righe:&lt;/p&gt;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;La prima riga è un commento.&lt;/li&gt;&#xA;&lt;li&gt;La seconda controlla che mod rewrite sia presente sul server.&lt;/li&gt;&#xA;&lt;li&gt;La terza abilita il motore di rewrite.&lt;/li&gt;&#xA;&lt;li&gt;La quarta permette le richieste di referer che non specifichino il file dell&amp;rsquo;immagine.&lt;/li&gt;&#xA;&lt;li&gt;La quinta controlla che il file richiesto esista.&lt;/li&gt;&#xA;&lt;li&gt;La sesta controlla quale sia la parte finale del file richiesto.&lt;/li&gt;&#xA;&lt;li&gt;La settima permette le richieste provenienti da &amp;ldquo;dominio&amp;rdquo;.&lt;/li&gt;&#xA;&lt;li&gt;L&amp;rsquo;ottava è l&amp;rsquo;azione da eseguire: dà un errore 403 se viene richiesto uno dei file elencati.&lt;/li&gt;&#xA;&lt;li&gt;La nona chiude il processo.&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;&lt;p&gt;Queste righe possono essere aggiunte al file &lt;code&gt;.htaccess&lt;/code&gt; che già avete nella vostra root. Ovviamente, sostituite &amp;ldquo;dominio&amp;rdquo; con quello vostro. Ad esempio, se il vostro sito si trova a &lt;a href=&#34;http://www.miosito.it&#34;&gt;http://www.miosito.it&lt;/a&gt;, dovrete inserire solo &amp;ldquo;miosito&amp;rdquo; al posto di &amp;ldquo;dominio&amp;rdquo;. Potete anche aggiungere altre estensioni oltre quelle già inserite: eventualmente modificate sia la 6a che la 8a riga. Per fare una prova se avete inserito correttamente le regole, potete andare &lt;a href=&#34;http://altlab.com/hotlinkchecker.php&#34;&gt;qui&lt;/a&gt; e inserire l&amp;rsquo;indirizzo di una immagine presente nel vostro sito. Prima di premere il pulsante, però, svuotate la cache del browser, altrimenti vedrete ugualmente l&amp;rsquo;immagine, perché il browser la preleva da lì.&lt;/p&gt;&#xA;&lt;p&gt;Se invece di servire un errore 403 volete far visualizzare una immagine specifica, sostituite la riga n. 8 con queste due:&lt;/p&gt;&#xA;&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-text&#34; data-lang=&#34;text&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;RewriteCond %{REQUEST_URI} !^/hotlink\.jpg$ [NC]&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;RewriteRule \.(gif|jpe?g?|png)$ http://www.vostrosito/hotlink.jpg [R,NC,L]&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;cambiando &lt;code&gt;/hotlink&lt;/code&gt; nella prima riga con la posizione dell&amp;rsquo;immagine da visualizzare e &lt;code&gt;http://www.vostrosito/hotlink.jpg&lt;/code&gt; con l&amp;rsquo;URL dell&amp;rsquo;immagine desiderata.&lt;/p&gt;&#xA;&lt;p&gt;Ecco un esempio di applicazione:&lt;/p&gt;&#xA;&lt;figure class=&#34;aligncenter&#34;&gt;&lt;img src=&#34;https://www.aldolat.it/images/2008/09/hotlink-action.png&#34;&gt;&#xA;&lt;/figure&gt;&#xA;&#xA;&lt;p&gt;L&amp;rsquo;immagine originale a sinistra veniva prelevata direttamente dal mio spazio e, applicando queste regole, ecco cosa viene visualizzato al suo posto (immagine a destra).&lt;/p&gt;&#xA;&lt;p&gt;Chiaramente, sta a voi usare con prudenza questo sistema, siate consapevoli di quello che fate e siate responsabili. Evitate di far visualizzare immagini che turbino la sensibilità di chi può commettere un errore e di chi visita il sito di chi l&amp;rsquo;errore lo compie.&lt;/p&gt;&#xA;&lt;h3 id=&#34;aggiunta-di-eccezioni&#34;&gt;Aggiunta di eccezioni&lt;/h3&gt;&#xA;&lt;p&gt;Ovviamente &lt;strong&gt;queste regole bloccano qualunque sito&lt;/strong&gt; che prelevi le immagini dal vostro spazio, compresi servizi legittimi come Google Reader, FeedBurner, i motori di ricerca e magari il planet del vostro progetto opensource. Per evitare che ciò avvenga inseriamo le regole che consentano a specifici servizi di accedere ai file bloccati.&lt;/p&gt;&#xA;&lt;p&gt;La riga di eccezione è questa:&lt;/p&gt;&#xA;&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-text&#34; data-lang=&#34;text&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;RewriteCond %{HTTP_REFERER} !^url-sito$ [NC]&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;per cui basta sostituire &lt;code&gt;url-sito&lt;/code&gt; con la URL e avrete finito. Eccovi alcuni esempi:&lt;/p&gt;&#xA;&lt;h4 id=&#34;feedburner&#34;&gt;FeedBurner&lt;/h4&gt;&#xA;&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-text&#34; data-lang=&#34;text&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;RewriteCond %{HTTP_REFERER} !^http://www.feedburner.com/.*$ [NC]&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;RewriteCond %{HTTP_REFERER} !^http://feeds.feedburner.com/vostro-nick$ [NC]&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h4 id=&#34;google-reader&#34;&gt;Google Reader&lt;/h4&gt;&#xA;&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-text&#34; data-lang=&#34;text&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;RewriteCond %{HTTP_REFERER} !^http://www.google.com/reader/view/.*$ [NC]&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;RewriteCond %{HTTP_REFERER} !^http://www.google.com/reader/m/view/.*$ [NC]&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h4 id=&#34;motori-di-ricerca&#34;&gt;Motori di ricerca&lt;/h4&gt;&#xA;&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-text&#34; data-lang=&#34;text&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;RewriteCond %{HTTP_REFERER} !search\?q=cache [NC]&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;RewriteCond %{HTTP_REFERER} !google\. [NC]&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;RewriteCond %{HTTP_REFERER} !yahoo\. [NC]&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;Con questo sistema potete inserire tutti i siti che vi interessano. Ad esempio, la riga di eccezione per il &lt;strong&gt;planet di ubuntu-it&lt;/strong&gt; potrebbe essere così:&lt;/p&gt;&#xA;&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-text&#34; data-lang=&#34;text&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;RewriteCond %{HTTP_REFERER}  !^https?://([^.]+\.)?planet.ubuntu-it\. [NC]&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;&lt;strong&gt;Le righe vanno inserite dopo la 7a, cioè sotto al primo referer abilitato (cioè il vostro sito).&lt;/strong&gt;&lt;/p&gt;&#xA;&lt;h2 id=&#34;reindirizzamento-temporaneo&#34;&gt;Reindirizzamento temporaneo&lt;/h2&gt;&#xA;&lt;p&gt;Potrebbe tornarci utile redirigere il traffico entrante, anche solo momentaneamente, verso una pagina ben precisa del nostro sito o verso una pagina esterna. Ad esempio, se stiamo facendo lavori di manutenzione sul sito e non vogliamo renderlo disponibile, possiamo inserire una regola temporanea nell&amp;rsquo;&lt;code&gt;.htaccess&lt;/code&gt;, per poi toglierla (o commentarla) quando avremo finito. Lo stesso risultato può ottenersi comodamente con un plugin, ma credo che con questo sistema si soddisfi di più il nostro desiderio di capire come funzioni un servizio web. L&amp;rsquo;essere o mostrarsi più geek non centra nulla qui: penso sia più istruttivo mettere mano con competenza e serietà ad htaccess che usare un plugin che dovrebbe ottenere lo stesso effetto.&lt;/p&gt;&#xA;&lt;p&gt;Ecco la regola:&lt;/p&gt;&#xA;&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-text&#34; data-lang=&#34;text&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;### REINDIRIZZAMENTO TEMPORANEO ###&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&amp;lt;Limit GET POST PUT&amp;gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;  order deny,allow&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;  deny from all&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;## AGGIORNARE IL SEGUENTE NUMERO IP CON QUELLO ATTUALMENTE VOSTRO!! ##&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;  allow from 123.45.6.789&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&amp;lt;/LIMIT&amp;gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;ErrorDocument 403 /vostro-file.html&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&amp;lt;Files vostro-file.html&amp;gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;  order allow,deny&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;  allow from all&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&amp;lt;/Files&amp;gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;Attenzione alle righe da sostituire: quella col numero IP del vostro PC e del file html (2 volte) dove volete siano reindirizzati i vostri visitatori.&lt;/p&gt;&#xA;&lt;h2 id=&#34;reindirizzamento-per-chi-proviene-da-un-particolare-dominio&#34;&gt;Reindirizzamento per chi proviene da un particolare dominio&lt;/h2&gt;&#xA;&lt;p&gt;Se per un motivo qualsiasi non vogliamo ricevere visite indirizzateci da un particolare dominio, possiamo aggiungere questa regola:&lt;/p&gt;&#xA;&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-text&#34; data-lang=&#34;text&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;### REINDIRIZZAMENTO PER CHI PROVIENE DA UN DOMINIO ###&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&amp;lt;IfModule mod_rewrite.c&amp;gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;  RewriteEngine On&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;  RewriteCond %{HTTP_REFERER} .*dominio.it.*&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;  RewriteRule (.*) http://www.dominio.com [R=301,L]&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&amp;lt;/IfModule&amp;gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;Sostituite &lt;code&gt;dominio.it&lt;/code&gt; con il dominio di chi vi linka e &lt;code&gt;http://www.dominio.com&lt;/code&gt; con l&amp;rsquo;URL del sito dove volete reindirizzare chi arriva a voi da quel sito.&lt;/p&gt;&#xA;&lt;p&gt;Anche in questo caso, usate con prudenza il reindirizzamento, siate consapevoli di quello che fate e siate responsabili. Evitate il reindirizzamento a siti che turbino la sensibilità di chi vi visita.&lt;/p&gt;&#xA;&lt;p&gt;Se avete intenzione di inserire regole per htaccess nei commenti a questo articolo, credo che &lt;strong&gt;WordPress sostituirà alcuni caratteri&lt;/strong&gt;. Usate un servizio &lt;a href=&#34;http://paste.ubuntu.com/&#34;&gt;Pastebin&lt;/a&gt; oppure discutiamone nel forum.&lt;/p&gt;&#xA;&lt;p&gt;L&#39;articolo &lt;a href=&#34;https://www.aldolat.it/posts/2008/wordpress-e-htaccess/&#34;&gt;WordPress e htaccess&lt;/a&gt; è uno scritto di &lt;a href=&#34;https://www.aldolat.it/&#34;&gt;aldolat.it&lt;/a&gt;. Rispettane le &lt;a href=&#34;https://www.aldolat.it/info/#licenza&#34;&gt;condizioni di licenza&lt;/a&gt;.&lt;/p&gt;</content:encoded>
        </item>
    </channel>
</rss>
