2016-07-27 18 views
0

Ich habe ein Sprachscript auf meiner Website erstellt. Dieses Skript erkennt die Sprache in der URL und lädt die Sprachdefinitionen.htaccess rules - mehrsprachige website

Zum Beispiel:

RewriteRule ^(.+)/about/?$ sobre2.php?lang=$1 <-- working fine 
RewriteRule ^(.+)/contact/?$ contato2.php?lang=$1 <-- working fine 
RewriteRule ^(.+)/products/?$ produtos2.php?lang=$1 <-- working fine 
RewriteRule ^(.+)/contact/sales/?$ contato-vendas2.php?lang=$1 <-- working fine 
RewriteRule ^(.+)/contact/general/?$ contato-form2.php?lang=$1 <-- working fine 

Die oben genannten Seiten zugegriffen werden jeweils wie folgt aus:

https://domain.com/b2b/pt-br/about/ 
https://domain.com/b2b/pt-br/contact/ 
https://domain.com/b2b/pt-br/products/ 
https://domain.com/b2b/pt-br/contact/sales/ 
https://domain.com/b2b/pt-br/contact/general/ 

Dies funktioniert gut auf allen Seiten, außer Index.

Wenn ich versuche, das gleiche mit der Index-Seite zu tun, mit diesem Code:

RewriteRule ^(.+)/?$ index2.php?lang=$1 

Außerdem ist es nicht funktioniert, es wirkt sich auch auf alle anderen Seiten (und Ressourcen), so die Ressourcen sind nicht geladen und die Seite sieht wie ein "reiner html" aus.

Ich mag gerne wissen, wie kann ich die .htaccess konfigurieren meine „index2.php“ zu machen, wie diese zugänglich sein:

https://domain.com/b2b/pt-br/ 

Danke.

Antwort

1

.+ entspricht 1 oder mehr beliebigen Zeichen, und wenn Sie Regeln vor anderen Regeln platzieren, werden dadurch andere Regeln unwirksam.

können Sie diese Regeln verwenden:

RewriteEngine On 
RewriteBase /b2b/ 

RewriteRule ^((?!pt-br/).*)$ pt-br/$1 [L,R=301,NC] 

RewriteRule ^(.+)/about/?$ sobre2.php?lang=$1 [L,QSA] 
RewriteRule ^(.+)/contact/?$ contato2.php?lang=$1 [L,QSA] 
RewriteRule ^(.+)/products/?$ produtos2.php?lang=$1 [L,QSA] 
RewriteRule ^(.+)/contact/sales/?$ contato-vendas2.php?lang=$1 [L,QSA] 
RewriteRule ^(.+)/contact/general/?$ contato-form2.php?lang=$1 [L,QSA] 
RewriteRule ^([a-z]{2}-[a-z]{2})/?$ index2.php?lang=$1 [NC,L,QSA] 
+0

vielen Dank, es ist perfekt funktioniert. Ist es möglich zu erkennen, ob jemand auf die Seite ohne den Sprachcode zugreift und sie dann umleitet? Beispiel: Wenn der Benutzer auf den Link "https://domain.com/b2b" zugreift, wird er zu "https://domain.com/b2b/pt-br" weitergeleitet. – paulohr

+0

Nun, es hat perfekt funktioniert, aber nur im "Index". Was kann ich tun, damit es auf * jeder * Seite funktioniert? Beispiel: Wenn der Benutzer auf "domain.com/b2b/contact" zugreift, wird er zu "domain.com/b2b/pt-br/contact" weitergeleitet. Es tut mir leid, dass ich es nicht besser erklärt habe. – paulohr

+0

Es hat nicht funktioniert. Ich erhalte Fehler 404, auch wenn ich mit "/ pt-br /" eintrage. – paulohr