- Home
- Categorie
- Digital Marketing
- Posizionamento Nei Motori di Ricerca
- Impostazione corretta htaccess per evitare duplicazione home italiano e inglese
-
@Juanin said:
Non ho capito se /en/index.php deve fare redirect oppure no.
No, non deve fare redirect, deve rimanere su /en/index.php
-
Allora devi evitare di usare questo nel match delle REQUEST
^.*/
-
@Juanin said:
Allora devi evitare di usare questo nel match delle REQUEST
^.*/
quindi, qualcosa di questo tipo:
RewriteCond %{THE_REQUEST} index.php
RewriteRule ^(.*)index.php$ http: // w w w . nomesito .com/$1 [R=301,L]o di questo tipo:
RewriteCond %{THE_REQUEST} index.php
RewriteRule index.php$ http: // w w w . nomesito .com/$1 [R=301,L](grazie)
-
In realtà meglio che forzi "inizia con" quindi ^/index.php o ^index.php
-
@Juanin said:
In realtà meglio che forzi "inizia con" quindi ^/index.php o ^index.php
quindi così ?
RewriteCond %{THE_REQUEST} ^/index.php
RewriteRule ^/index.php$ http: // w w w . nomesito .com/$1 [R=301,L]
-
Sì dovrebbe andare, ma non credo ti serva usare il $1.
-
@Juanin said:
Sì dovrebbe andare, ma non credo ti serva usare il $1.
ciao...ho applicato il tuo ultimo consiglio (togliere $1) ma ora si crea il problema inverso, cioè applicando questa regola:
RewriteCond %{THE_REQUEST} ^/index.php
**RewriteRule ^/**index.php$ http: // w w w . nomesito .com/ [R=301,L]ora questo indirizzo (che con la regola iniziale che ho postato funzionava)
http: // w w w . nomesito .com/index.php
non funziona più e non fa quindi il redirect su http: // w w w . nomesito .com/
mentre funziona questo indirizzo (come volevo ottenere fin dall'inizio)
http: // w w w . nomesito .com/en/index.php
che non fa più il redirect (come volevo) su http: // w w w . nomesito .com/en/
Cosa posso fare ?
Sono un po' in difficoltà su questo .htaccess
-
Che strano.
Cmq se tenendo il $1 ti funziona come vuoi...lascialo pure.
-
@Juanin said:
Che strano.
Cmq se tenendo il $1 ti funziona come vuoi...lascialo pure.
Ciao, no non funzionava anche prima che togliessi il $1 ... comunque anche rimettendolo (ho provato) si comporta come se non ci fosse, non cambia nulla ...
La home page italiana
http: // w w w . nomesito .com/index.php
non fa il redirect su
http: // w w w . nomesito .com
mentre la home page inglese
http: // w w w . nomesito .com/en/index.php
rimane correttamente su questa pagina (senza fare il redirect sulla cartella /en/)
DOMANDA: ma se evito di risolvere con l'htaccess e faccio in modo che nel sito non ci siano link (da nessuna parte) alla index.php italiana ma solo alla radice del dominio (http: // w w w . nomesito .com) ?
Se faccio così non risolvo lo stesso evitando che si indicizzi come contenuto duplicato anche la index.php ?
-
Io credo che il problema sia la %REQUEST
Prova come segue se ho ben capito cosa vuoi fare ora.
[PHP]
RewriteEngine On
RewriteCond %{THE_REQUEST} ^[A-Z]{3,9}\ /index.php
RewriteRule ^index.php$ / [L,R=301]
[/PHP]
-
@Juanin said:
Io credo che il problema sia la %REQUEST
Prova come segue se ho ben capito cosa vuoi fare ora.
[PHP]
RewriteEngine On
RewriteCond %{THE_REQUEST} ^[A-Z]{3,9}\ /index.php
RewriteRule ^index.php$ / [L,R=301]
[/PHP]Sei MITICOOOOOO, funziona!
p.s. visto che sei così bravo con l'htaccess, mi spiegheresti per favore (non capisco) come mai se faccio questo semplice redirect 301 succede questo:
Siccome ho spostato una "sotto-categoria" sotto un'altra "categoria" ho impostato questo semplice redirect 301 così:
redirect 301 /categoria-vecchia/sotto-categoria/ http: // w w w . nomesito .com/categoria-nuova/sotto-categoria/
Ma se clicco il vecchio URL nella serp di Google mi viene mostrato nella barra degli indirizzi questa URL:
http: // w w w . nomesito .com/categoria-nuova/sotto-categoria/?id=sotto-categoria
**E' come se mi "appendesse" nell' URL il nome della "sotto-categoria" associandola come valore ad una variabile "id"
**
Come posso evitare che crei questo URL strano, sbaglio qualcosa nel redirect 301 ?
-
Andrebbe controllato il waterfall.
L'append del parametro avviene dopo che atterri sulla pagina nuova oppure è direttamente già presente nel link in SERP?
-
@Juanin said:
Andrebbe controllato il waterfall.
L'append del parametro avviene dopo che atterri sulla pagina nuova oppure è direttamente già presente nel link in SERP?
(ciao)
No, avviene quando atterro sulla pagina nuova (non è presente nella SERP)
-
Mi incolli esattamente il tuo .htaccess?
-
@Juanin said:
Mi incolli esattamente il tuo .htaccess?
Ecco:
redirect 301 /tavola/bottiglie-e-thermos/ http: // w w w . nomesito .com/idee-regalo/bottiglie-e-thermos/
Il risultato è (se lancio la vecchia URL di cui sto facendo il redirect):
http: // w w w . nomesito .com/idee-regalo/bottiglie-e-thermos/?id=bottiglie-e-thermos
-
Prova ad usare una redirectMatch 301 invece di redirect 301.
-
niente, ho provato sia con il redirectMatch che con il RewriteRule ma nulla ...
-
Prova a mettere il $ alla fine della redirect match.
Giusto per info non è che hai anche altre regole di redirect nell'htaccess?
-
@Juanin said:
Prova a mettere il $ alla fine della redirect match.
Giusto per info non è che hai anche altre regole di redirect nell'htaccess?
Ciao, avevo già provato con il $ ma niente ...
Sì, nell' htaccess ci sono diverse altre regole, scusami se non te l'ho spiegato prima o fatto capire ...
Non ci avevo pensato ...Quindi vuoi vedere, come mi stai suggerendo tu, che magari va in conflitto con ad esempio questa regola (la seconda riga) che riscrive le "sotto-categorie" ?
RewriteRule ^([^/])/$ /categoria.php?id=$1
RewriteRule ^([^/])/([^/]*)/$ /sotto-categoria.php?id=$2
-
Si devi incollarmi tutto l'htaccess per capire come ti avevo scritto prima.
Quel redirect avviene a causa di un'altra regola.