Supporto » Fixing WordPress » Redirect singola pagina tramite .htaccess

  • Ciao a tutti,
    non riesco a far funzionare una regola di rewrite su .htaccess.
    In particolare, vorrei reindirizzare solo una pagina, a un’altra pagina, in caso di traffico mobile.
    Il file .htaccess si trova oviamente nella root, che nel mio caso è una sottocartella del dominio (www.miosito.it/sezione/)

    Ho provato così:

    <IfModule mod_rewrite.c>
    RewriteEngine On
    RewriteBase /sezione/
    RewriteRule ^index\.php$ - [L]
    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteCond %{REQUEST_FILENAME} !-d
    RewriteRule . /sezione/index.php [L]
    
    </IfModule>
    
    RewriteCond %{HTTP_USER_AGENT} "android|blackberry|googlebot-mobile|iemobile|ipad|iphone|ipod|opera mobile|palmos|webos" [NC]
    RewriteRule ^/trova-i-nostri-punti-vendita/ http://www.miosito.it/sezione/trova-i-nostri-punti-vendita-mobile/ [L,R=302]
    

    ma non funziona. Semplicemente non effettua il redirect da cellulare. Dove sbaglio?
    Grazie mille

Stai visualizzando 3 risposte - dal 1 al 3 (di 3 totali)
  • Ciao @rapafenice,

    da quello che vedo dovrebbe bastarti cambiare
    RewriteRule ^/trova-i-nostri-punti-vendita/ http://www.miosito.it/sezione/trova-i-nostri-punti-vendita-mobile/ [L,R=302]
    in
    RewriteRule ^trova-i-nostri-punti-vendita http://www.miosito.it/sezione/trova-i-nostri-punti-vendita-mobile/ [L,R=302]

    Attenzione però che le istruzioni che hai aggiunto vanno comunque messe dentro dei tag

    <IfModule mod_rewrite.c>
    </IfModule>

    Questo perché altrimenti il server cercherebbe di eseguire le due righe che hai aggiunto in ogni caso, anche se non ha il supporto per il mod_rewrite, provocando di solito un errore 500.
    Così facendo invece vengono eseguite solo nel caso mod_rewrite sia attivo.

    Se non vuoi intaccare il codice che genera WordPress puoi semplicemente scrivere come segue

    
    # BEGIN WordPress
    <IfModule mod_rewrite.c>
    RewriteEngine On
    RewriteBase /sezione/
    RewriteRule ^index\.php$ - [L]
    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteCond %{REQUEST_FILENAME} !-d
    RewriteRule . /sezione/index.php [L]
    </IfModule>
    # END WordPress
    
    <IfModule mod_rewrite.c>
    RewriteCond %{HTTP_USER_AGENT} "android|blackberry|googlebot-mobile|iemobile|ipad|iphone|ipod|opera mobile|palmos|webos" [NC]
    RewriteRule ^trova-i-nostri-punti-vendita/ http://www.miosito.it/sezione/trova-i-nostri-punti-vendita-mobile/ [L,R=302]
    </IfModule>

    Altra nota: WordPress durante i possibili aggiornamenti dei permalink tocca solo le parti dentro

    # BEGIN WordPress
    ...
    # END WordPress

    Quindi lascia i tag e commenti che ha generato in automatico dato che sono utilizzati da WordPress.

    Buona giornata,
    Diego

    Grazie mille Diego, gentilissimo.
    Ho provato. Però purtroppo non funziona. Su mobile si continua a vedere la pagina “normale”

    http://www.miosito.it/sezione/trova-i-nostri-punti-vendita/ anziché
    http://www.miosito.it/sezione/trova-i-nostri-punti-vendita-mobile/

    Ecco il codice come è ora:

    # BEGIN WordPress
    <IfModule mod_rewrite.c>
    RewriteEngine On
    RewriteBase /sezione/
    RewriteRule ^index\.php$ - [L]
    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteCond %{REQUEST_FILENAME} !-d
    RewriteRule . /sezione/index.php [L]
    
    RewriteCond %{HTTP_USER_AGENT} "android|blackberry|googlebot-mobile|iemobile|ipad|iphone|ipod|opera mobile|palmos|webos" [NC]
    RewriteRule ^trova-i-nostri-punti-vendita http://www.miosito.it/sezione/trova-i-nostri-punti-vendita-mobile/ [L,R=302]
    
    </IfModule>
    
    # END WordPress
    

    Ci può essere qualcosa che blocca la lettura della regola?

    Grazie ancora

    Qualche nuova idea nel nuovo anno? 🙂

Stai visualizzando 3 risposte - dal 1 al 3 (di 3 totali)
  • Il topic ‘Redirect singola pagina tramite .htaccess’ è chiuso a nuove risposte.