<?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 Webserver</title>
        <link>https://www.aldolat.it/tags/webserver/</link>
        <description>Ultimi post pubblicati nel tag Webserver &#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/webserver/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>Spostare WordPress: i consigli degli esperti</title>
            <link>https://www.aldolat.it/posts/2011/spostare-wordpress-consigli-esperti/</link>
            <pubDate>Sun, 29 May 2011 11:20:42 +0000</pubDate>
            <author>aldolat@gmail.com (Aldo Latino)</author>
            <guid>https://www.aldolat.it/posts/2011/spostare-wordpress-consigli-esperti/</guid>
            <description>Nella giornata di ieri del WordCamp di Milano, Andrea Beggi ha proposto un interessante intervento (qui il video registrato) su un argomento che ha affrontato più volte sul suo blog: come spostare la propria installazione di WordPress da un hosting (un hosting in senso stretto o VPS o server dedicato) a un altro. Di questo intervento ha anche rilasciato i suoi appunti nel suo post di oggi (qui le slide).&#xA;Tra i miei segnalibri su Delicious Pinboard ho ripescato quelli che mi sono conservato su questo argomento e ve li ripropongo qui sotto:</description>
            <content:encoded>&lt;figure class=&#34;alignleft&#34;&gt;&lt;img src=&#34;https://www.aldolat.it/images/2011/05/wordpress-blue-arrow.png&#34; width=&#34;150px&#34;&gt;&#xA;&lt;/figure&gt;&#xA;&#xA;&lt;p&gt;Nella &lt;a href=&#34;http://wordcamp.it/milano2011/wordcamp-programma-del-28-maggio-2011/&#34;&gt;giornata di ieri&lt;/a&gt; del WordCamp di Milano, Andrea Beggi ha proposto un interessante intervento (&lt;a href=&#34;http://www.ustream.tv/recorded/15009936&#34;&gt;qui&lt;/a&gt; il video registrato) su un argomento che ha affrontato più volte sul suo blog: come spostare la propria installazione di WordPress da un hosting (un hosting in senso stretto o VPS o server dedicato) a un altro. Di questo intervento ha anche rilasciato i suoi appunti &lt;a href=&#34;http://www.andreabeggi.net/2011/05/29/wordpress-cambiare-hosting/&#34;&gt;nel suo post&lt;/a&gt; di oggi (&lt;a href=&#34;http://www.slideshare.net/andreabeggi/wordpress-trasferimento-di-hosting&#34;&gt;qui&lt;/a&gt; le slide).&lt;/p&gt;&#xA;&lt;p&gt;Tra i miei segnalibri su &lt;del&gt;Delicious&lt;/del&gt; Pinboard ho ripescato quelli che mi sono conservato &lt;a href=&#34;https://pinboard.in/u:aldolat/t:transfer/&#34;&gt;su questo argomento&lt;/a&gt; e ve li ripropongo qui sotto:&lt;/p&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;a href=&#34;http://codex.wordpress.org/Moving_WordPress&#34;&gt;Il Codex di WordPress&lt;/a&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&#34;http://sltaylor.co.uk/blog/moving-wordpress-new-domain-server/&#34;&gt;Steve Taylor&lt;/a&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&#34;http://yoast.com/move-wordpress-blog-domain-10-steps/&#34;&gt;Joost de Valk (aka Yoast)&lt;/a&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&#34;http://www.prelovac.com/vladimir/how-to-move-wordpress-site-to-another-server-with-zero-downtime&#34;&gt;Vladimir Prelovac&lt;/a&gt; (non più disponibile)&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&#34;http://www.andreabeggi.net/2011/05/29/wordpress-cambiare-hosting/&#34;&gt;Andrea Beggi&lt;/a&gt;&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;figure class=&#34;alignleft&#34;&gt;&lt;img src=&#34;https://www.aldolat.it/images/2011/05/wp_change_03.jpeg&#34;&gt;&#xA;&lt;/figure&gt;&#xA;&#xA;&lt;figure class=&#34;alignleft&#34;&gt;&lt;img src=&#34;https://www.aldolat.it/images/2011/05/wp_change_05.jpeg&#34;&gt;&#xA;&lt;/figure&gt;&#xA;&#xA;&lt;figure class=&#34;alignleft&#34;&gt;&lt;img src=&#34;https://www.aldolat.it/images/2011/05/wp_change_04.jpeg&#34;&gt;&#xA;&lt;/figure&gt;&#xA;&#xA;&lt;figure class=&#34;alignleft&#34;&gt;&lt;img src=&#34;https://www.aldolat.it/images/2011/05/wp_change_02.jpeg&#34;&gt;&#xA;&lt;/figure&gt;&#xA;&#xA;&lt;figure class=&#34;alignleft&#34;&gt;&lt;img src=&#34;https://www.aldolat.it/images/2011/05/wp_change_01.jpeg&#34;&gt;&#xA;&lt;/figure&gt;&#xA;&#xA;&lt;div class=&#34;clear&#34;&gt;&lt;/div&gt;&#xA;&lt;p&gt;Penso sia sempre bene ascoltare più voci e, come vedete, gli autori sono tra i più noti su WordPress.&lt;/p&gt;&#xA;&lt;p&gt;L&#39;articolo &lt;a href=&#34;https://www.aldolat.it/posts/2011/spostare-wordpress-consigli-esperti/&#34;&gt;Spostare WordPress: i consigli degli esperti&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>
