• User Newbie

    redirect 301 + rewriterule = loop

    Ciao a tutti, come al solito sono da voi a chiedere un consiglio per risolvere un problemaccio in cui sono incappato.

    ho un URL di questo tipo:
    **
    sito.it/pagina.php**

    e vorrei cambiarlo in

    w-w-w.sito.it/pagina-con-nuovo-slug-senza-estensione

    quindi aggiungere il w-w-w e cambiare lo slug in modo da non avere l'estensione .php.
    La pagina fisica che dovrebbe leggere sarebbe sempre page.php, ma voglio cambiare l'url e di conseguenza fare un redirect 301

    io ho fatto così:

    
    RewriteEngine On
    
    RewriteCond %{HTTP_HOST} !^ w-w-w .sito.it$ 
    RewriteRule ^(.*)$ h-t-t-p-:-/-/w-w-w.sito.it/$1 [R,L]
    
    RewriteRule ^pagina-con-nuovo-slug-senza-estensione$ page.php
    redirect 301 h-t-t-p-:-/-/w-w-w.sito.it/page.php h-t-t-p-://w-w-w.sito.it/pagina-con-nuovo-slug-senza-estensione
    
    
    

    ovviamente mi funziona il discorso dell'aggiungere automaticamente il www alle pagine che non lo hanno, ma se vado su page.php non mi reindirizza a pagina-con-nuovo-slug-senza-estensione, qualche suggerimento?
    thx thx

    PS ho dovuto inserire i trattini fra le lettere di http e www perchè non mi faceva postare.


  • Moderatore

    Ciao cignoooo.
    Prova a eliminare le ultime due righe in favore di queste:

    
    RewriteCond %{REQUEST_URI} ^/page\.php$
    RewriteRule ^(.*)$ http://www.sito.it/pagina-con-nuovo-slug-senza-estensione? [R=301,L]
    
    

    Facci sapere se ha funzionato. 🙂

    Francesco


  • User Newbie

    Niente Francesco, da 404.

    ti posto il file reale qui sotto

    
    RewriteEngine On
    
    RewriteCond %{HTTP_HOST} !^vvv.sito.com$ 
    RewriteRule ^(.*)$ hiip://vvv.sito.com/$1 [R,L]
    
    #RewriteRule ^camera-deserto$ camera1.php
    #redirect 301 hiip://vvv.sito.com/camera1.php hiip://vvv.sito.com/camera-deserto
    
    RewriteCond %{REQUEST_URI} ^/camera1\.php$
    RewriteRule ^(.*)$ hiip://vvv.sito.com/camera-deserto? [R=301,L]
    
    

    Chiaramente hiip = http e vvv = www, non me lo faceva postare....

    Come vedi ho commentato le due righe che mi avevi detto di cancellare ed ho inserito quelle tue, ma niente.

    tanto per capirci ho la pagina camera1.php che vorrei diventasse semplicemente /camera-deserto

    Se dovesse risultare impossibile mi sa che devierò verso questa soluzione:
    redirect 301 da camera1.php a /camera-deserto
    poi creo fisicamente una pagina camera-deserto.php e con rewrite rule dico di far leggere a /camera-deserto quella pagina.

    Può funzionare?

    Grazie mille Francesco, sei sempre prezioso.


  • Moderatore

    Faccio una prova e più tardi ti aggiorno.
    Curiosità: da 404 anche con il w w w?


  • Moderatore

    Ciao cignoooo.
    In questo caso è sufficiente lasciare le istruzioni che ho già postato e rinominare camera1.php in camera-deserto.php (c'è il 301):

    
    RewriteCond %{REQUEST_URI} ^/camera1\.php$
    RewriteRule ^(.*)$ http://www.sito.it/camera-deserto.php? [R=301,L]
    
    

    Fammi sapere, 🙂
    Francesco


  • User Newbie

    alla fine ho risolto così:

    
    RewriteEngine On
    
    #tutti con il www
    RewriteCond %{HTTP_HOST} !^w-w-w-.sito.com$ 
    RewriteRule ^(.*)$ h-t-t-p-://w-w-w-.sito.com/$1 [R,L]
    
    #cambio url una per una
    RewriteCond %{REQUEST_URI} ^/camera1\.php$
    RewriteRule ^(.*)$ h-t-t-p-://w-w-w-.sito.com/camera-deserto? [R=301,L]
    RewriteRule ^camera-deserto$ /camera-deserto.php
    
    

    chiaramente ho rinominato camera1.php in camera-deserto.php come mi avevi suggerito tu.
    volevo le url senza mostrare l'estensione dei file (.php).

    Grazie ancora mitico 🙂