• User

    .htaccess uso corretto del RewriteRule

    Ciao a tutti, scusate se ripeto l'argomento ma non ho trovato nessun riferimento che mi possa aiutare. L'.htaccess per me è ostico quindi cerco il vostro aiuto. Ho la necessità di eseguire le seguenti funzioni:

    1- Settare il charset UTF-8
    2- Permettere di indicizzare solo www.sito.it e non http://sito.it (per evitare la duplicazione del portale)
    3- Indirizzare automaticamente Spider ed Utenti che vogliono entrare in una directory del sito (es. www.sito.it/pippo/ ) verso una pagina con un nome specifico ( accedendo a www.sito.it/pippo/ vengo spostato su www.sito.it/pippo/topolino.htm e non su www.sito.it/pippo/index.htm )

    Il tutto ,oltre ad essere corretto, deve essere anche il metodo migliore per evitare penalizzazioni nei motori. Questo è il codice che sicuramente sarà sbagliato:

    
    AddDefaultCharset utf-8
    <ifmodule mod_rewrite.c>
    RewriteEngine On
    RewriteBase /
    RewriteCond %{HTTP_HOST} !^www\.sito\.it 
    RewriteRule ^(.*)$ http://www.sito.it/$1 [L,R=301]
     
    RewriteRule ^pippo/$ /pippo/pluto.htm [L,NC,NS]
    RewriteRule ^paperino/$ /paperino/ciao.htm [L,NC,NS]
     
    Redirect permanent /index.htm http://www.sito.it/index.php
    </ifmodule>
    
    

    Confido nel Vostro aiuto. Grazie 1000.


  • Super User

    Il reindirizzamento da sito.it a www.sito.it è il seguente:

    RewriteEngine on
    RewriteCond %{HTTP_HOST} ^sito.it
    RewriteRule ^(.*)$ http://www.sito.it/$1 [L,R=301]

    Per il rewrite dovremmo vedere il codice per capire se l'hai impostato bene.
    Facci sapere :ciauz:


  • User

    Ciao Angelweb l'htaccess che sto facendo è questo:

    AddDefaultCharset utf-8
    <ifmodule mod_rewrite.c>
    RewriteEngine On
    RewriteBase /

    /********* REINDIRIZZAMENTO ***********/
    RewriteCond %{HTTP_HOST} !^www.sito.it
    RewriteRule ^(.*)$ http://www.sito.it/$1 [L,R=301]

    /********* REWRITE ***********/
    RewriteRule ^pippo/$ /pippo/pluto.htm [L,NC,NS]
    RewriteRule ^paperino/$ /paperino/ciao.htm [L,NC,NS]

    Redirect permanent /index.htm http://www.sito.it/index.php
    </ifmodule>

    Ma non penso di averlo scritto tutto corretto... L'ho inserito nel primo post (almeno io lo vedo...) :mmm: :ciauz:


  • Super User

    Il reindirizzamento che scrivi è sbagliato. copia quello che ho scritto.
    Per le pagine interne non ho capito a cosa ti serve il rewrite essendo in htm.


  • User

    Ciao angel allora ho modificato l'htaccess come mi hai suggerito questo il risultato:

    
    AddDefaultCharset utf-8
     
    <ifmodule mod_rewrite.c>
    Options +FollowSymLinks
    RewriteEngine on
     
    **** Redirect verso www.sito.it per evitare che i motori indicizzino anche sito.it ****
    RewriteCond %{HTTP_HOST} ^sito.it 
    RewriteRule ^(.*)$ http://www.sito.it/$1 [L,R=301]
     
    **** Redirect permanente della pagina di default del sito ****
    Redirect permanent /index.htm http://www.sito.it/index.php
     
    **** Redirect della pagina di default di una directory verso una pagina con nome specifico ****
    RewriteRule ^directory-one/$ /directory-one/noindexpage.htm [L,NC,NS]
    RewriteRule ^directory-two/$ /directory-two/noindexpage.htm [L,NC,NS]
    </ifmodule>
    
    

    L'ho testato e sembra funzionare, l'ho scritto in maniera corretta? Per quanto riguarda il redirect per le directory non utilizzo una funzione che potrebbe penalizzarmi vero? Grazie del supporto e della pazienza 😉


  • User Newbie

    Ciao **metaline **

    non ho capito il perchè tu usi questo tipo di codice

    RewriteRule ^directory-one/$ /directory-one/noindexpage.htm [L,NC,NS]ho un presentimento perchè io vorrei scrivere un link in questo modo

    [php] echo "<a href='ww w.sito.it/directoryONE/$tipologia/$paese/$path'>link</a>";[/php]che dovrebbe venire interpretato secondo questa regola

    RewriteRule ^directoryONE/([^/\.]+)/?$ file.php?path=/$3 
    ```in questo modo **sito.it/directoryONE/tipologia/paese/path-pagina**
     
    **ma non funzionaaaaa!!!!**
     
    Allora ho pensato che mettendo $ dopo directoryONE dovrebbe leggere le successive directory come variabili di cui io utilizzo solo la 3a.
     
    Aiutami, please!
     
    A presto, daniele

  • User

    Ciao a tutti,

    Ho un sito plone, quindi istanza zope, che gira ovviamente su apache.
    Dovendo fare un redirect ho creato un file .htaccess che ho messo nella directory indicatami dal gestore del server con la sintassi indicatami da lui... ma non funziona.
    Ecco sotto l'esempio di quello che devo fare

    RewriteEngine On
    RewriteRule ^dir1/dir2/prod /dir0/dir1/dir2/prod [R=302,L]
    etc....

    Cosa c'è di sbagliato?
    Non riesco a capire...
    grazie dell'aiuto in anticipo


  • User

    Salve a tutti,

    ho reaizzato un nuovo sito in wordpress, ovviamente goole mi da tutti i 404 del vecchio sito. Siccome non voglio realizzare dei redicrect di tutti i singoli linkperchè sono tantissimi. Desidera realizzare dei redirect a gruppi per lo meno, per non caricare troppo htaccess. tipo:

    tutto quello che inzia per component/virtuemart/ reindirizza sui miosito.it/shop

    RewriteRule ^component/virtuemart/ h-t-t-p://miosito.it/shop [R=301,L]

    è corretta come regola?