• Das kreative Thema des Monats Oktober wird vor allem diejenigen unter Euch besonders ansprechen, denen Do-it-yourself quasi im Blut liegt. Zeigt uns Eure Improvisationskünste oder fotografiert, was andere Leute sich so im Alltag zusammengestrickt haben. --> Zum Mitmachen bitte hier klicken

Rewrite URL

mschoening

Gelbe Schleswiger Reinette
Registriert
21.02.07
Beiträge
1.764
Hi,
ich hab mal wieder ein Problem mit einer Rewrite. Und zwar will ich alle URLs die mit einem bestimmten Zeichensatz anfangen rewriten.

Beispiel:
für http://domain.com/d482x9 soll http://domain.com/utilities/d.php?c=482x9 aufgerufen werden

Die Zeichen kette fängt immer mit einem kleinen d an und ist dann eine Kombination aus Zahlen und Nummern die nach dem d 5 Zeichen lang ist.

LG,
Max
 
Eine .htaccess im Hauptordner erstellen und folgendes reinschreiben

Code:
RewriteEngine   	On 

RewriteRule ^d482x9/	d.php?c=482x9	[L]

vielleicht kannst Du ja damit etwas anfangen
 
  • Like
Reaktionen: mschoening
Hi,
vielen Dank für deine Hilfe. Das hätte ich auch noch selbst hinbekommen :D! Ich hab das nicht deutlich genug erklärt: Die Zeichenkette ist natürlich dynamisch! Also das 482x9 kann ich da nicht so rein schreiben :D!

LG,
Max
 
Regulärer Ausdruck: d([0-9a-z]{5}) … den geklammerten Teil bekommst du dann mit $1. Müsstest du so in den obigen Schnipsel von Diey integrieren können.
 
  • Like
Reaktionen: mschoening
Hi,
vielen Dank. Das geht wunderbar mit dem kleinen Abstrich das die string length von 5 nicht beachtet wird. Es werden jetzt alle URLs die mit kleinem d anfangen umgeschrieben. Kann ich das auch so machen, dass nur URLs umgeschrieben werden wenn sie d+5 Zeichen lang sind?

P.S: Wie sieht es aus wenn ich den slash optional haben will nach dem string? also so http://domain.com/d429x6 oder http://domain.com/d429x6/ und es soll beides gehen? Muss ich 2 Rules machen oder kann ich das in einer kombinieren?

Thanks,
Max
 
So sieht die Datei momentan aus:

Code:
RewriteEngine On
RewriteRule ^d([0-9a-z]{5}) d.php?c=$1 [L]
 
Die Lösung sieht so aus:

Code:
RewriteEngine On
RewriteRule ^d([0-9a-z]{5})[COLOR="Red"]$[/COLOR] d.php?c=[COLOR="Red"]$0[/COLOR] [L]
 
Zuletzt bearbeitet: