Frage

auf der Suche nach einem anwenderfreundliche URL , wie erreiche ich beide der folgenden, elegant mit nur .htaccess?

/ en / somepage
gehen /somepage?ln=de

/ zh-CN / somepage # 7
gehen /somepage?ln=zh-CN#7

Zusammenfassung:
/ [Sprache] / [pagefilenameWithoutExtension] [optional Anker #] [eine Zahl von 0-9]

laden soll (ohne URL zu ändern)
/ [pagefilenameWithoutExtension]? Ln = [Sprache] [optional Anker #] [eine Zahl von 0-9]

UPDATE, nachdem bereitgestellte Lösung: 1. Ausnahme / zh-CN / somepage sollte / cn / somepage erreichbar sein 2. php Thumbnails jetzt Last nicht mehr wie:
img src = "imgcpu? src = someimage.jpg & w = 25 & h = 25 & c = f & f = bw"

War es hilfreich?

Lösung

RewriteRule ^([a-z][a-z](-[A-Z][A-Z])?)/(.*) /$3?ln=$1 [L]

Sie brauchen nichts für Fragmente zu tun (zB: #7). Sie sind nicht an den Server gesendet. Sie sind vollständig vom Browser behandelt.

Update: Wenn Sie wirklich wollen behandeln zh-CN als Sonderfall, könnte man so etwas tun:

RewriteRule ^zh-CN/(.*) /$1?ln=zh-CN [L]
RewriteRule ^cn/(.*) /$1?ln=zh-CN [L]
RewriteRule ^([a-z][a-z])/(.*) /$2?ln=$1 [L]

Andere Tipps

Ich würde vorschlagen, die folgenden -

RewriteEngine on
RewriteRule ^([a-z][a-z])/([a-zA-Z]+) /$2?ln=$1
RewriteRule ^([a-z][a-z])/([a-zA-Z]+#([0-9])+) /$2?ln=$1$3

Die erste Regel kümmert sich um URLs wie / en / somepage. Die Sprache sollte von genau zwei Zeichen lang sein Länge und darf nur von A bis Z Zeichen enthalten.

Die zweite Regel kümmert sich um URLs wie / uk / somepage # 7.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top