le lingue sono 4
ok, in pratica devo fare 4 siti paralleli.....
le lingue sono 4
ok, in pratica devo fare 4 siti paralleli.....
te ne sarei grata...... ma posso farlo anche se il sito è locato su un server condiviso?
Certo che sì
Puoi avere anche diversi file .htaccess per diverse sottocartelle, ma per il momento non dovrebbero servirti.
Se non lo hai già, nella root del sito crea un file (un normale file testuale) e chiamalo ".htaccess"
Nel file specificherai le regole per "smistare" gli url, un esempio potrebbe essere:
La regola trasforma un url del tipocodice:RewriteRule ^(it|en|de|es)/([\S][^/]+)$ $2.php?language=$1
/en/contatti
in
contatti.php?language=en
oppure
/de/qualcosa
in
qualcosa.php?language=de
Nel tuo HTML metterai gli url SEO-friendly poi penserà il file .htaccess ad aprire il file richiesto e passare il parametro
Provo a tradurti la regola:
^(it|en|de|es)/([\S][^/]+)$
"Quando sono richiesti degli url che iniziano con(^) "it" oppure "en" oppure "de" oppure "es" che poi continuano con uno slash ed una stringa alfanumerica"
$2.php?language=$1
"apri il file che si chiama stringa alfanumerica.php e passagli come parametro "it" oppure "en" oppure "de" oppure "es".
Si capisce?!??!?!?!? O_o
allora.... così potrebbe andare?!
RewriteRule ^(it|en|fr|de)/([\S][^/]+)$ $contatti.php?language=it
RewriteRule ^(it|en|fr|de)/([\S][^/]+)$ $contatti.php?language=en
RewriteRule ^(it|en|fr|de)/([\S][^/]+)$ $contatti.php?language=fr
RewriteRule ^(it|en|fr|de)/([\S][^/]+)$ $contatti.php?language=de
RewriteRule ^(it|en|fr|de)/([\S][^/]+)$ $qualita.php?language=it
RewriteRule ^(it|en|fr|de)/([\S][^/]+)$ $qualita.php?language=en
RewriteRule ^(it|en|fr|de)/([\S][^/]+)$ $qualita.php?language=fr
RewriteRule ^(it|en|fr|de)/([\S][^/]+)$ $qualita.php?language=de
e via dicendo?!
Non è necessario specificare tutte e quattro le lingue per ogni url.
Questa singola istruzione è già sufficiente.
Il $1 alla fine della regola passa già il parametro corretto, cioè, se l'url inizia con it, passa it, se l'url inizia con de, passa de, ecc.codice:RewriteRule ^(it|en|de|es)/([\S][^/]+)$ $2.php?language=$1
Così come il $2 indica il file con estensione "php" da aprire.
Le RewriteRule sono composte da due parti:
Nella prima, ^(it|en|de|es)/([\S][^/]+)$ definisci il formato dell'url
Nella seconda, $2.php?language=$1 definisci cosa fare quando viene richiesto un url che combacia col formato specificato
Se non hai dimestichezza con le espressioni regolari, puoi specificare singolarmente gli url:
I due metodi sono equivalenti, ovviamente specificare tutti gli url è più prolisso e potrebbe essere impraticabile se si hanno moltissimi url.codice:RewriteRule ^it/contatti contatti.php?language=it RewriteRule ^en/contatti contatti.php?language=en #ecc.
nn mi va.....
.htaccess
e nel menucodice:RewriteEngine On RewriteRule ^(it|en|fr|de)/([\S][^/]+)$ $2.php?lang=$1
index.php viene determinato da $_SERVER['PHP_SELF']codice HTML:<ul id="lang"> <li><a href="/index.php?lang=it" data-info="it"><img src="images/flag/it.png" /></a></li> <li><a href="/index.php?lang=en" data-info="en"><img src="images/flag/en.png" /></a></li> <li><a href="/index.php?lang=fr" data-info="fr"><img src="images/flag/fr.png" /></a></li> <li><a href="/index.php?lang=de" data-info="de"><img src="images/flag/de.png" /></a></li> </ul>
Nell'HTML metteremo i nostri magnifici search-engine-friendly url:
.htaccess
codice:RewriteEngine On #Per la home RewriteRule ^(it|en|fr|de)/$ index.php?lang=$1 #Per le pagine RewriteRule ^(it|en|fr|de)/([\S][^/]+)$ $2.php?lang=$1codice HTML:<ul id="lang"> <li><a href="/it/" data-info="it"><img src="images/flag/it.png" /></a></li> <li><a href="/en/" data-info="en"><img src="images/flag/en.png" /></a></li> <li><a href="/fr/" data-info="fr"><img src="images/flag/fr.png" /></a></li> <li><a href="/de/" data-info="de"><img src="images/flag/de.png" /></a></li> </ul>
non fa il rewrite
ho copiato esattamente il tuo codice ma il link mi rimanda a www. miosito.it/en/qualita.php e ovviamente la cartellina en/ non esiste.......
ma nn è che il server non supporta il rewrite?! Ho visto che ci sarebbe da attivarlo in caso, ma io nn ho i permessi ovviamente.....
nel file .htaccess che c'era di default c'era solo scritto "## Default .htaccess file"