3 Stimmen

Ein paar Fragen zu .htaccess und freundlichen URLs

Ich habe mich immer schlecht mit Apache beschäftigt und sehr einfache Lösungen verwendet. Im Moment habe ich eine CMS-Software gebaut aber die .htaccess fängt an, eine große Verkleinerung zu sein.

Ich werde zunächst erklären, wie meine Friendly-Urls funktionieren und aussehen. Meine Sprachumschaltung ist url-basiert und enthält immer zwei Zeichen. Und das sieht so aus: stackoverflow.com/de/ Dies macht das Umschalten wirklich einfach und da es auf der URL basiert, funktioniert es gut in Bezug auf SEO. Wenn keine Sprach-ID angegeben ist, wird die Standardsprache verwendet (stackoverflow.com/).
Es gibt keine Seiten-IDs in Zahlen. Ich habe eindeutige Seitennummern im Text: stackoverflow.com/services.html und aus Gründen der Suchmaschinenoptimierung und zur Vermeidung von Ordnerkonflikten .html am Ende
Für Unterseiten habe ich die Stilvariablen "$current_page" und "$parent_page": stackoverflow.com/services/uebersetzen.html Dienste ist die übergeordnete Seite und Übersetzen ist die aktuelle Seite.
Einige Beispielcode zu (ich nerfed es viel, so dass Sie nicht denken, seine unvollständig):

RewriteRule ^(et|en|fi)\/(.+)\/(.+)\.html  index.php?language=$1&pagelink=$3&parentlink=$2 [L,NC,QSA]

RewriteRule ^(.+)\/(.+)\.html  index.php?language=0&pagelink=$2&parentlink=$1 [L,NC,QSA]
RewriteRule ^(.+)\.html  index.php?language=0&pagelink=$1&parentlink=0 [L,NC,QSA]

Wie kann ich den Teil des Sprachwechsels dynamischer gestalten?
Diese Methode ..^(et|en|fi)\/.. bedeutet, dass ich beim Einrichten des CMS die Sprachenliste manuell einstellen muss. Am besten wäre es, sie irgendwie über die CMS-Einstellungen einzustellen. Denn auf diese Weise gibt es keine Konflikte im Zusammenhang mit Ordnern. Ist es möglich, eine globale apace-Variable über php zu setzen und sie dann in der .htaccess-Datei anzuzeigen? Etwas wie dies: ..^(LANGUAGELISTS)\/.. ? Wenn dies nicht möglich ist, dann wäre das Nächstbeste, 2 Zeichen an dieser Stelle abzugleichen und sie als $_GET['language'] .

Wie kann ich dynamisch unbegrenzt viele Eltern haben?
Das bedeutet, dass die "$parent_page" nicht statisch gesetzt ist und ich eine unbegrenzte Anzahl von Kindern habe, ähnlich wie hier: stackoverflow.com/services/translating/english/somesubpage.html . Wenn das möglich ist, dann auch, wie wird es in der PHP, mit einem Array verwendet werden?

Kopfgeld bearbeiten
Der erste Teil der Frage ist im Grunde gelöst, es sei denn, jemand kommt mit einigen php -> apache-array -> .htaccess Weg.
Der zweite Teil der Frage ist jedoch noch nicht gelöst. Da dies das Problem bei allen meinen Projekten ist und möglicherweise jemand anderem in der Zukunft helfen könnte, habe ich beschlossen, diese Frage mit einem Kopfgeld zu versehen.

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X