Teil von SELFHTML Forum Teil von SELFHTML Forumsarchiv Teil von 2001 Teil von November

SELFHTML Forumsarchiv
RewriteRule mit Zero-Padding

Informationsseite
  1. Seite (SERVER) RewriteRule mit Zero-Padding von Cheatah, 29. 11. 2001, 18:33
nach unten

RewriteRule mit Zero-Padding

Die folgende Nachricht zum Thema stammt von: Cheatah, 29. 11. 2001, 18:33

Hi,

ich stehe vor dem Problem, ein nicht ganz leichtes URL-Rewriting durchführen zu dürfen. Der Request geht z.B. auf "/bla/123/", und als Ergebnis muss dann "/bla/0000/0000/0123.blub" ausgelesen werden.

Das Aufsplitten einer Zahl in Viererketten ist kaum 'ne Fingerübung, aber die (eventuell) fehlenden Nullen aufzufüllen macht mir dann doch etwas Kopfzerbrechen. Meine Lösung sähe mehr oder weniger so aus, erst mal "auf gut Glück" etwas wie "/bla///123.blub" zu erzeugen, und dann in späteren Rewrites alle "/(\d{0,3})/" durch "/0$1/" zu ersetzen (o.ä.), bis nichts mehr gefunden wird.

Ich bin davon überzeugt, dass das ganze auch in einem, maximal zwei Rewrites geht, nur fehlt mir der geniale Gedanke; zudem ist meine Erfahrung mit mod_rewrite noch recht minimal. Kann mir jemand auf die Sprünge helfen?

Cheatah

nach obennach unten

RewriteRule mit Zero-Padding

Die folgende Nachricht zum Thema stammt von: Christian Kruse, 29. 11. 2001, 18:52

Hoi,

»» ich stehe vor dem Problem, ein nicht ganz leichtes URL-Rewriting durchführen zu dürfen. Der
»» Request geht z.B. auf "/bla/123/", und als Ergebnis muss dann "/bla/0000/0000/0123.blub"
»» ausgelesen werden.

»» Das Aufsplitten einer Zahl in Viererketten ist kaum 'ne Fingerübung, aber die (eventuell)
»» fehlenden Nullen aufzufüllen macht mir dann doch etwas Kopfzerbrechen. Meine Lösung sähe
»» mehr oder weniger so aus, erst mal "auf gut Glück" etwas wie "/bla///123.blub" zu erzeugen, und
»» dann in späteren Rewrites alle "/(\d{0,3})/" durch "/0$1/" zu ersetzen (o.ä.), bis nichts mehr
»» gefunden wird.

Ouch, das wird aber viel Traffic.

»» Ich bin davon überzeugt, dass das ganze auch in einem, maximal zwei Rewrites geht, nur fehlt
»» mir der geniale Gedanke; zudem ist meine Erfahrung mit mod_rewrite noch recht minimal. Kann
»» mir jemand auf die Sprünge helfen?

Wie waere es mit RewriteMap?

RewriteEngine On
RewriteMap scary-url prg:/path/to/perlscript

RewriteCond ^/bla/123/
RewriteRule ^/bla/123/ ${scary-url:/bla/123/|default-val}

perlscript:
#!/usr/bin/perl -w
$| = 1;
while(my $row = <STDIN>)
 {
  ### die transformationen erspar ich mir jetzt, das kannst du besser
 }

Gruesse,
 CK

nach obennach unten

RewriteRule mit Zero-Padding

Die folgende Nachricht zum Thema stammt von: Cheatah, 29. 11. 2001, 19:02

Hi,

»» Ouch, das wird aber viel Traffic.

naja, es findet alles noch serverintern statt, ohne Roundtrip zum Client. Ist aber trotzdem nicht hübsch...

»» Wie waere es mit RewriteMap?

Keine schlechte Idee; nur fürchte ich, dass ein Perlscript nicht wirklich die Zustimmung unserer IT findet... allein schon den Perl-Interpreter ein paar dutzend Mal pro Sekunde neu zu starten könnte ein wenig unperformant sein :-)

»»   ### die transformationen erspar ich mir jetzt, das kannst du besser

Danke :-)

Ich behalte die Idee mal im Hinterkopf; auf jeden Fall ist es eine Lösung, die ich testen werde - danke dafür! Ich bin aber weiterhin offen für Alternativen ;-)

Cheatah

nach obennach unten

RewriteRule mit Zero-Padding

Die folgende Nachricht zum Thema stammt von: Christian Kruse, 29. 11. 2001, 19:17

Hoi,

»» »» Wie waere es mit RewriteMap?

»» Keine schlechte Idee; nur fürchte ich, dass ein Perlscript nicht wirklich die Zustimmung unserer IT
»» findet... allein schon den Perl-Interpreter ein paar dutzend Mal pro Sekunde neu zu starten könnte
»» ein wenig unperformant sein :-)

Tja, es muss ja nicht unbedingt ein Perl-Script sein. Schreib dir halt ein kleines C-Programm,
das tuts auch; viel laenger als 10 Zeilen braeuchte es ja nicht zu sein.

Gruesse,
 CK

nach obennach unten

RewriteRule mit Zero-Padding

Die folgende Nachricht zum Thema stammt von: Cheatah, 29. 11. 2001, 19:39

Hi,

»» Tja, es muss ja nicht unbedingt ein Perl-Script sein. Schreib dir halt ein kleines C-Programm,
»» das tuts auch; viel laenger als 10 Zeilen braeuchte es ja nicht zu sein.

klingt schon ein wenig freundlicher... obwohl ich unsere gestrenge IT schon meckern höre :-)

"Mein C-Mensch" ist leider erst nächste Woche wieder da; und da hier mittlerweile jemand auf eine etwas internere (potentielle) Möglichkeit hingewiesen hat, warte ich auf jeden Fall erst mal ab, was der dazu meint. Ich halte Dich aber auf dem laufenden :-)

Chea "Thanks again" tah

nach obennach unten

RewriteRule mit Zero-Padding

Die folgende Nachricht zum Thema stammt von: Frank Schönmann, 30. 11. 2001, 16:41

hi!

»» Keine schlechte Idee; nur fürchte ich, dass ein Perlscript nicht
»» wirklich die Zustimmung unserer IT findet... allein schon den
»» Perl-Interpreter ein paar dutzend Mal pro Sekunde neu zu starten
»» könnte ein wenig unperformant sein :-)

.oO( mod_perl )

bye, Frank!

nach obennach unten

RewriteRule mit Zero-Padding

Die folgende Nachricht zum Thema stammt von: Cheatah, 30. 11. 2001, 18:34

Hi,

»» .oO( mod_perl )

steht leider aus Gründen, die sowohl den Rahmen als auch meine Schweigepflicht sprengen, zu meinem tiefsten Bedauern nicht zur Debatte. Aber thanks für den Gedanken :-)

Cheatah

nach obennach unten

RewriteRule mit Zero-Padding

Die folgende Nachricht zum Thema stammt von: Christian Kruse, 30. 11. 2001, 22:43

Hoi,

»» »» .oO( mod_perl )

»» steht leider aus Gründen, die sowohl den Rahmen als auch meine Schweigepflicht sprengen, zu meinem tiefsten Bedauern nicht zur Debatte. Aber thanks für den Gedanken :-)

Und ist auch gar nicht moeglich in dem Fall.

Gruesse,
 CK

nach obennach unten

RewriteRule mit Zero-Padding

Die folgende Nachricht zum Thema stammt von: Klaus Mock, 29. 11. 2001, 20:22

Hallo,

Und was ist, wenn Du zuerst mal Nullen anhängst, und die überschüssigen dann in einem zweiten Schritt entfernst?

Dann kanstt Du "/bla/0000/0000/0000123.blub" mittels  /0+(\d{4})/ auf  /$1/ mappen.

Ist nur so eine Idee.

Grüße
  Klaus

nach obennach unten

RewriteRule mit Zero-Padding

Die folgende Nachricht zum Thema stammt von: Cheatah, 29. 11. 2001, 21:28

Hi,

»» Und was ist, wenn Du zuerst mal Nullen anhängst, und die überschüssigen dann in einem zweiten Schritt entfernst?

kein übler Gedanke. Kostet garantiert zwei Rewrites, ist aber damit O(1) und ergo überschaubar :-)

Prima Idee, danke!

Cheatah

nach obennach unten

RewriteRule mit Zero-Padding

Die folgende Nachricht zum Thema stammt von: Sven Rautenberg, 29. 11. 2001, 21:51

»» Hi,

»» ich stehe vor dem Problem, ein nicht ganz leichtes URL-Rewriting durchführen zu dürfen. Der Request geht z.B. auf "/bla/123/", und als Ergebnis muss dann "/bla/0000/0000/0123.blub" ausgelesen werden.

Welcher Zahlenbereich muß denn da abgedeckt werden? Welcher Request kommt denn raus, wenn /bla/12345/ angefordert wird?

In Erweiterung der Idee, erstmal viele Nullen davorzusetzen:
Zunächst von /bla/123/ auf /bla/000000000123/, dann Viererketten bilden. Bei unterschiedlich langen Ziffernfolgen von hinten vielleicht eine kleine Herausforderung. :)

 - Sven Rautenberg

nach obennach unten

RewriteRule mit Zero-Padding

Die folgende Nachricht zum Thema stammt von: Cheatah, 30. 11. 2001, 14:43

Hi,

»» Welcher Zahlenbereich muß denn da abgedeckt werden?

zumindest ein- bis zehnstellige Zahlen.

»» Welcher Request kommt denn raus, wenn /bla/12345/ angefordert wird?

/bla/0000/0001/2345.blub

Im Grunde wird die Zahl zwölfstellig gemacht und nach jeder vierten Stelle durch einen Slash getrennt.

»» Zunächst von /bla/123/ auf /bla/000000000123/, dann Viererketten bilden.

Wird schwierig, weil ich nicht automagisch die nötige Zahl der Nullen ermitteln kann. Ich lasse mich gerne vom Gegenteil überzeugen; aber bei dieser Variante brauche ich glaube ich (fix) drei Rewrites.

»» Bei unterschiedlich langen Ziffernfolgen von hinten vielleicht eine kleine Herausforderung. :)

Ja - die unterschiedliche Länge ist es, die mir zu schaffen macht... ohne das wär's ja einfach :-)

Auch Dir danke,

Cheatah

nach oben
Teil von SELFHTML Forum Teil von SELFHTML Forumsarchiv Teil von 2001 Teil von November

© 1998-2008 Seite Impressum, Software: Classic Forum