- Home
- Categorie
- Digital Marketing
- Posizionamento Nei Motori di Ricerca
- Impostazione corretta htaccess per evitare duplicazione home italiano e inglese
-
@Juanin said:
Ciao.
Sì lo puoi spegnere utilizzando un'operatore logico che dica !valore.
Ciao e grazie innanzitutto per la risposta!
Mi fai un esempio per favore ? giusto per darmi una dritta sulla quale poi fare delle prove e lavorarci su ?Grazie
-
Nelle RewriteCond basta che metti !regolachevuoi.
-
ok ho provato varie regole, come mi hai suggerito tu, alla fine solo questa regola funziona in parte*:
RewriteCond %{REQUEST_URI} "/en/"
RewriteRule (.*) $1Con questa regola però se digito
w w w . nomedominio . com / en /
*adesso funziona e si carica la versione inglese del sito (con questo URL) ma tutti gli URL che stanno sotto questa cartella NON VENGONO (ovviamente) PIU' RISCRITTI DAL REWRITERULE, esempio:
http: // w w w . nomesito .com/en/products/gifts/
(URL TIPICO DI UNA CATEGORIA DEL SITO INGLESE)oppure
http: // w w w . nomesito .com/en/products/gifts/thermos/
(URL TIPICO DI UNA SOTTO CATEGORIA DEL SITO INGLESE)Quindi in sostanza sono riuscito a evitare che venga eseguito il rewriterule della cartella specifica /en/ (e quindi OK) ma ORA DEVO far in modo che il reriterule VENGA ESEGUITO su qualsiasi cartella al suo interno, altrimenti la parte inglese non funziona ...
Come posso fare ?
-
Devi fare il match esatto solo su !/en/ in modo che non contempli le sottocartelle.
Gusto per fare un esempio potresti dire tutte quelle che iniziano e finiscono con /en/.
Se invece ti serve Match esatto di URL puoi fare senza regexp %{REQUEST_URI} =/en/
-
@Juanin said:
Devi fare il match esatto solo su !/en/ in modo che non contempli le sottocartelle.
innanzitutto grazie per la risposta ... ma come si fa il match esatto su qualsiasi cartella tranne che su /en/, in modo che contempoli le sottocartelle ?
E' proprio questo che non riesco a fare (per limiti miei ovviamente)...
-
Io non ho capito bene cosa vuoi fare.
Riesci a farmi una lista delle cose che dovrebbero succedere in modo sintetico.
-
ok ... vorrei fare semplicemente questo:
che quando digito questo URL NON VENGA eseguito il rewriterule:
w w w . nomedominio . com / en /
(con questo URL carico la home page in inglese)
che quando digito un URL di questi tipi VENGA eseguito il rewriterule:
w w w . nomedominio . com / en /products/gifts/
w w w . nomedominio . com / en /products/gifts/thermos/
(con questi URL carico una categoria o una sotto-categoria ma tramite l'uso del rewriterule ... per questo ho bisogno che per qualsiasi cartella che sta sotto /en/ mi funzioni il rewriterule ... o basterebbe dirgli che per la cartella /en/products/ funzioni il rewriterule, tanto qualsiasi contenuto sta sotto questa cartella in inglese)
-
Allora lascia tutte le condizioni e usa una condizione di esclusione in aggiunta con match esatto su /en/
%{REQUEST_URI}!=/en/
-
mi devi scusare, porta pazienza (non ti arrabbiare, non sono molto pratico su questo tema ... :)), ma non capisco cosa intendi quando scrivi "lascia tutte le condizioni", intendi una cosa di questo tipo:
RewriteCond %{REQUEST_URI} "/en/"
RewriteRule (.*) $1
RewriteCond %{REQUEST_URI}!=/en/Non ho capito come devo inserire la tua direttiva (e se nella stringa che hai scritto tu manca qualcosa o va messa pari pari a come l'hai scritta) ...
-
Puoi fare in vari modi.
Puoi combinare tutto in una sola regola o accodarne 2 o più prima della rewrite rule. Esempio:
RewriteCond A RewriteCond B RewriteRule 1
-
@Juanin said:
Puoi fare in vari modi.
Puoi combinare tutto in una sola regola o accodarne 2 o più prima della rewrite rule. Esempio:
>RewriteCond A RewriteCond B RewriteRule 1 >``` Ho provato e forse ho capito perchè non funziona bene ... Ho provato ad usare questo set e funziona tutto, anche l'home page in inglese con il percorso "/en/" ... **funziona tutto tranne qualsiasi URL che sta viene generato all' interno della cartella "/en/"** ... RewriteCond %{REQUEST_URI} "/en/" RewriteCond %{REQUEST_URI}!=/en/ RewriteRule (.*) $1 **Cioè tutti questi URL (e simili) funzionano**: w w w . nomedominio . com /prodotti/regali/ w w w . nomedominio . com /prodotti/regali/bottiglie-e-thermos/ ........... (in sostanza qualsiasi URL nella versione italiana, quindi qualsiasi URL che viene generato e che ovviamente non è contenuto nella cartella "/en/" funziona) .............. **Mentre tutti questi URL (e simili) che che vengono tutti generati dentro la cartella "/en/" (perchè siamo nell' inglese) non funzionano**: w w w . nomedominio . com / en /products/gifts/ w w w . nomedominio . com / en /products/gifts/thermos/ .......... (qualsiasi URL contenuto nella cartella "/en/") ............ Quindi **dovremmo trovare un modo per far sì che qualsiasi URL contenuto nella cartella "/en/" funzioni con il rewriterule**, cosa che **adesso è bloccata** in qualche modo da questo set di regole. Secondo me è la seconda delle tre regole usate che non va bene ... cosa ne dici ?
-
@Juanin said:
Puoi fare in vari modi.
Puoi combinare tutto in una sola regola o accodarne 2 o più prima della rewrite rule. Esempio:
>RewriteCond A RewriteCond B RewriteRule 1 >``` Alla fine dopo giorni e giorni, ore e ore di ricerca e test sono riuscito a risolvere così: RewriteCond %{REQUEST_URI} ^/en[/]? RewriteCond %{REQUEST_URI} !^/en/products[/]? RewriteRule (.*) $1 Siccome tutte le URL delle categorie, sotto-categorie e prodotti sono dentro la cartella "/en/products/" ho fatto in modo che da questo URL tutto fosse attivo a livello di rewriterule. Così funziona ... blocca il rewriterule solo sul percorso specifico "/en/". Ciao