WordPress: un nuovo .htaccess per migliori prestazioni e rispetto mod_slotlimit

La configurazione di default del CMS WordPress prevede un sistema di riscrittura degli indirizzi basato sull’utilizzo del file “.htaccess” (scritto con il punto iniziale). Vedremo ora come renderlo meno intrusivo e massimizzarne le prestazioni.

La seguente configurazione di “.htaccess” viene utilizzata nelle recenti versioni di WordPress (fino alla 3.0.x):

Questa serie di regole è molto inefficente in quanto, al caricamento  di ogni file che compone la pagina web, esegue un ciclo di ricerca supplementare per verificare l’esistenza del file.

Il problema si complica, inoltre, nel caso in cui il proprio servizio di hosting preveda limitazioni di banda. Se tali limitazioni relative al numero di file caricati (mod_slotlimit), come ad esempio nel caso del provider italiano Tophost, si ottiene l’effetto di fare scattare il limite di soglia anche caricando una sola pagina web, in quanto tutti i suoi componenti (immagini, fogli di stile) vengono fatti passare attraverso l’interprete php e quindi trattati come fossero pagine web indipendenti. In breve, tutto questo porta al fatidico messaggio di errore:

Blocked by mod_slotlimit. More information about this error may be available in the server error log.

Suggeriamo quindi di sostituire il contenuto del file “.htaccess” con le righe seguenti:

I miglioramenti apportati sono i seguenti:

  • il blocco di controllo <ifmodule> è rimosso per guadagnare velocità
  • la riscrittura viene evitata se la pagina da caricare è la “index.php”, cioè la pagina iniziale
  • la riscrittura viene evitata per i file statici di tipo immagine, javascript e css

Utilizzando le nuove regole si abbasserà notevolmente il tempo di caricamento della pagina, considerando che saranno evitati numerosi cicli di ricerca relativi al check di esistenza dei file statici, e si risolveranno gli eventuali problemi nel controllo di banda tramite mod_slotlimit.

8 pensieri su “WordPress: un nuovo .htaccess per migliori prestazioni e rispetto mod_slotlimit

  1. stefano

    grazie per le regole, ma queste modifiche effettuano anche un redirect su NON WWW ma senza 301 non sarebbe opportuno aggiungere anche

    RewriteCond %{HTTP_HOST} ^www.dominio.net [NC]
    RewriteRule ^(.*)$ http://dominio.net/$1 [L,R=301]

    tu che ne pensi?

    Replica
    1. WhileTrue Autore articolo

      Ciao Stefano,
      credo non sia necessario aggiungere il 301 in questo caso, a meno che tu non voglia forzare l’utilizzo dei link senza www; in quel caso dai un’occhiata anche ai link canonici inseriti nel tema per evitare contraddizioni. In ogni caso è una scelta individuale, non una regola generale.

      Replica
  2. stefano

    ciao,
    si non è una regola generale,
    io di solito forzavo con 301 www o non www
    mi chiedevo cosa ne pensavi anche per le prestazioni e lato seo dato che redirige lo stesso senza come lo voglio
    e si, canonical è impostato senza

    Replica
  3. stefano

    ciao,
    si non è una regola generale,
    io di solito forzavo con 301 www o non www
    mi chiedevo cosa ne pensavi anche per le prestazioni e lato seo dato che redirige lo stesso senza come lo voglio è penso rediriga anche i motori
    e si, canonical è impostato senza

    Replica
  4. Antonio

    Buongiorno,

    tempo fa cambiai la struttura dei permalink da http://www.nomesito.com/%category%/%postname%.html a http://www.nomesito.com/%postname%/, ora google strumenti webmaster mi restituisce migliaia di link, con errore 404, c’è un modo per “programmare” il redirect affinchè redirecti correttamente, e in automatico, tutti i link su google? Non voglio usare plugin perchè finora hanno fatto solo macelli (e credo anche di esser stato penalizzato). Grazie mille.
    Purtroppo ho commesso diversi errori in passato, nel tentativo di spostare il sito nella root principale, commisi degli errori, poi con i permalink ecc.ecc. adesso cerco di risolvere queste segnalazioni di strumenti per webmaster.

    Grato infinitamente per un aiuto.

    Grazie

    Antonio

    Replica
    1. WhileTrue Autore articolo

      Ciao Antonio,
      in linea di massima aggiungerei al file htaccess una serie di regole di questo tipo, una per categoria:
      RewriteRule ^nomedellacategoria/(.+)\.html$ http://www.nomesito.com/$1/ [R=301,L]

      Immagino sia necessario qualche ulteriore adattamento, ma può essere un punto di partenza.

      Replica
  5. roberto

    ciao
    io ho questo problema:
    nella root del sito ho installato wordpress in una directory ho installato un negozio basato su prestashop.
    Il problema è che alcune pagine nella cartella di prestashop vengono dirottate alla 404 di worpress.
    ho provato a modificare htaccess di wordpress con alcuni esempi trovati nel web ma la cosa continua.
    come posso risolvere?

    grazie

    Replica
    1. WhileTrue Autore articolo

      Ciao Roberto, se WordPress risponde al posto di Prestashop dovresti cercare la soluzione all’interno di Prestashop, che non processa correttamente la richiesta. Dai un’occhiata alla sua gestione 404, al sui htaccess e, nel caso in cui l’htaccess sia unico, all’ordine in cui sono inserite le regole di Prestashop e WordPress.

      Replica

Lascia un commento

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *