Un Evento Unico. 5 Sale. 27 Interventi. SEO, SOCIAL, E-Commerce, Mobile, Turismo.
CLICCA QUI e SCOPRI DI PIù X Chiudi
 
Forum GT: Condividiamo idee e conoscenza Forum GT: Condividiamo idee e conoscenza


Condividi questo contenuto nei Social Network:
Ti stiamo aspettando: Registrati subito e gratis. Entra a far parte di una delle comunità più attive in Italia. Se hai dimenticato i tuoi dati li puoi recuperare subito.


Vai indietro   Forum per Webmaster: Condividiamo Idee e Conoscenza > Seo e Tecnologie > Mod Rewrite e Tecniche di URL Redirect
Benvenuto! Forum Regole FAQ Lista utenti Calendario Segna come letti

Mod Rewrite e Tecniche di URL Redirect La riscrittura delle URL e i reindirizzamenti

Hey Amico Visitatore,
Condividi con noi le tue idee e la tua conoscenza Aprendo una nuova discussione nella sezione Mod Rewrite e Tecniche di URL Redirect


Rispondi
 
LinkBack Strumenti di discussione
Vecchio 30-04-10, 19:36   #1 (permalink)
Moderatore
 
L'avatar di lucabartoli
 
Data di registrazione: Feb 2010
Ubicazione: Torino
Messaggi: 498
Invia un messaggio tramite Skype a lucabartoli
Rewrite di un sito Multilingua e default

Salve a tutti!
Ho sviluppato un sito multilingua in php, dopodiché ho creato il file .htaccess per riscrivere gli url in modo che fossero più friendly ai motori di ricerca e soprattutto in modo che gli url fossero riscritti nella lingua dell'utente.

Questo è il mio .htaccess. /mt2/ è la cartella sul server in locale, sul remoto la rewrite base sarà "/" e le cond modificate di conseguenza.
Codice:
Options +FollowSymlinks
RewriteEngine On
RewriteBase /mt2/

RewriteRule ^admin[/]?$ admin/login.php [L,NC]
RewriteRule ^collaboratori[/]?$ collaboratori.php [L,NC]

RewriteCond %{REQUEST_URI} !^/mt2/it/
RewriteRule (.*) - [S=10]
RewriteRule ^it/$ ?lang=it [NC]
RewriteRule ^it/contatti-e-sedi[/]?$ contatti.php?lang=it [L,NC,QSA]
RewriteRule ^it/(.*)cerca[/]?$ cerca.php?lang=it [L,NC,QSA]
RewriteRule ^it/macchine-utensili-usate[/]?$ usato.php?lang=it [L,NC,QSA]
RewriteRule ^it/macchine-utensili-nuove[/]?$ nuovo.php?lang=it [L,NC,QSA]
RewriteRule ^it/accessori-macchine-utensili[/]?$ accessori.php?lang=it [L,NC,QSA]
RewriteRule ^it/(macchine-utensili-usate|macchine-utensili-nuove|accessori-macchine-utensili)?[/]?([a-zA-Z-]+)$ categoria.php?categoria=$1&cat=$2&lang=it [L,NC]
RewriteRule ^it/(macchine-utensili-usate|macchine-utensili-nuove|accessori-macchine-utensili)/([0-9]+)/([^/]+)-w00\.htm$ scheda_articolo.php?id=$2&web=1&lang=it [L,NC]
RewriteRule ^it/(macchine-utensili-usate|macchine-utensili-nuove|accessori-macchine-utensili)/([0-9]+)/([^/]+)\.htm$ scheda_articolo.php?id=$2&web=0&lang=it [L,NC]
RewriteRule ^it/(macchine-utensili-usate|macchine-utensili-nuove|accessori-macchine-utensili)/([0-9]+)/richiesta-informazioni\.php$ richiesta-informazioni.php?id=$2&lang=it [QSA,L,NC]

RewriteCond %{REQUEST_URI} !^/mt2/en/
RewriteRule (.*) - [S=10]
RewriteRule ^en/$ ?lang=en [L,NC]
RewriteRule ^en/contacts-and-offices[/]?$ contatti.php?lang=en [L,NC,QSA]
RewriteRule ^en/(.*)search[/]?$ cerca.php?lang=en [L,NC,QSA]
RewriteRule ^en/used-machine-tools[/]?$ usato.php?lang=en [L,NC,QSA]
RewriteRule ^en/new-machine-tools[/]?$ nuovo.php?lang=en [L,NC,QSA]
RewriteRule ^en/machine-tools-accessories[/]?$ accessori.php?lang=en [L,NC,QSA]
RewriteRule ^en/(used-machine-tools|new-machine-tools|machine-tools-accessories)?[/]?([a-zA-Z-]+)$ categoria.php?categoria=$1&cat=$2&lang=en [L,NC]
RewriteRule ^en/(used-machine-tools|new-machine-tools|machine-tools-accessories)/([0-9]+)/([^/]+)-w00\.htm$ scheda_articolo.php?id=$2&web=1&lang=en [L,NC]
RewriteRule ^en/(used-machine-tools|new-machine-tools|machine-tools-accessories)/([0-9]+)/([^/]+)\.htm$ scheda_articolo.php?id=$2&web=0&lang=en [L,NC]
RewriteRule ^en/(used-machine-tools|new-machine-tools|machine-tools-accessories)/([0-9]+)/richiesta-informazioni\.php$ richiesta-informazioni.php?id=$2&lang=en [QSA,L,NC]

RewriteRule ^(.+)/files/(.+)$ files/$2 [L,NC]
RewriteRule ^(.+)/style/(.+)$ style/$2 [L,NC]
RewriteRule ^(.+)/lightbox/(.+)$ lightbox/$2 [L,NC]
RewriteRule ^(.+)/js/(.+) js/$2 [L,NC]
Il file è molto lungo (se avete idee per semplificare sono ben accette), ma funziona benone...
Ora però ho bisogno di fare in modo che l'italiano sia il default, ovvero di un redirect (visibile) da www . sito . it a www . sito .it/it/ .
Se poi il redirect valesse anche per le pagine interne sarei ancora più felice...

Praticamente ne ho provate di tutti i colori da stamattina, ma ottengo sempre un loop tra l'inserimento della directory fittizia (it,en,ecc) e il redirect al file reale.
Per fare un esempio ecco una delle ultime prove:
ho inserito nel .htaccess (prima all'inizio, poi alla fine, non è cambiato nulla)
Codice:
RewriteCond %{REQUEST_URI} !^/mt2/(it|en)/
RewriteRule (.*) it/$1 [R=301]
richiedo al browser -> localhost / mt2 /
ottengo un redirect 301 a -> localhost /mt2 / it
che fa un redirect 301 a -> localhost / mt2 / it /?lang=it
che fa un redirect 301 a se stesso e quindi procede all'infinito finché apache non interviene


Che un qualche santo mi aiuti!
Grazie!!
lucabartoli non in linea   Rispondi citando
Rispondi
Tags: , ,



Strumenti di discussione

Regole di scrittura
Non puoi postare nuove discussioni
Non puoi rispondere alle discussioni
Non puoi allegare file
Non puoi editare i tuoi post

BB code is Attivo
smilies è Attivo
[IMG] il codice è Attivo
Il codice HTML è Disattivato
Trackbacks are Attivo
Pingbacks are Attivo
Refbacks are Disattivato
Vai al forum



Tutti gli orari sono GMT +3. Attualmente sono le 18:43.




Forum GT - © 2004-2009 GT idea S.r.l P.iva 02418200800 - Privacy/Disclaimer

SEO by vBSEO 3.2.0 ©2008, Crawlability, Inc.