.htaccess Regel für die Spracherkennung

8

Ich habe Probleme mit .htaccess Meine vereinfachte Dateiserver-Struktur ist die folgende:

%Vor%

Ich muss mit virtuellen URLs arbeiten, um den Sprachwechsel zu handhaben:

%Vor%

Also sollte mein .htaccess überprüfen, ob URL / en / oder / de / enthält und es in zB übersetzen. /signup.php?language=de

Grundsätzlich gesprochen, sollte es das Sprach-Tag entfernen, aber den Rest der Ordnerstruktur behalten.

sollte sowohl auf meinem lokalen xampp als auch auf meinem Live-Server funktionieren. irgendwelche Ideen? Danke

    
Fuxi 31.05.2013, 10:07
quelle

1 Antwort

12

Was hast du bisher versucht? Etwas wie das Folgende sollte funktionieren:

%Vor%

Die Bedeutung ist ziemlich offensichtlich: nehmen Sie das zweite Match ( ), das kommt nach dem zweiten Schrägstrich in der URL, verschieben Sie ein ?language= danach und dann die erste Übereinstimmung ( ), Das heißt, was ist zwischen den ersten beiden Schrägstrichen - vorausgesetzt, es handelt sich um en oder de . Wenn Sie etwas als Sprache (nicht nur en oder de ) anpassen möchten, ändern Sie die Regel wie folgt:

%Vor%

Bitte beachten Sie: Das ? in der ersten Gruppe lässt die Übereinstimmung beim ersten Schrägstrich stoppen, so dass Sie zB nicht neu schreiben.

%Vor%

bis

%Vor%

aber eher zu

%Vor%

Im Zweifelsfall gibt es auf der Apache-Website eine exzellente Dokumentation .

Bearbeiten: Standardsprache

Um alle anderen Anfragen (also URLs, die nicht mit /en/ oder /de/ beginnen) auf eine Standardsprache umzuleiten (sagen wir en ), müssen Sie zuerst die Sprachpräfixe kennen, die Sie erkennen möchten, und dann benutze die folgenden Regeln - unten gehe ich davon aus, dass es drei -3-Sprachen mit den Codes en , de und fr :

gibt %Vor%

Wenn Sie nicht die genaue Sprache definieren, die in der ersten RewriteRule festgelegt wurde (z. B. mit meiner vorherigen "Any Language" -Lösung), könnte die Spracherkennung auf verschachtelten Seiten fehlschlagen. Es ist wichtig, dass die Regeln in dieser Reihenfolge sind, da die erste Seite die Seiten mit dem Sprachcode abgleicht und dann beendet wird, während die zweite nur dann angewendet wird, wenn die erste nicht übereinstimmt.

    
Paolo Stefan 31.05.2013 10:22
quelle

Tags und Links