On Wed, Oct 24, 2012 at 10:35 AM, Søren Schrøder <sch@xxxxxxxx> wrote: > Greetings apache users - I hope I selected the right list for this question: > > > I have a wierd mod_rewrite problem, that I need new eyes on. > > What I try to do accomplish: > > I am implementing “Userdirs” using mod_rewrite, with users in LDAP > > The filepath is fetched from LDAP using a perl map program (with > ram-caching, for fast response, the programs does 20k responses in > 0.2s, so it’s not a bottleneck) > > Mod_rewrite config: > > > RewriteEngine on > RewriteLog /var/log/rewriter-log > RewriteLogLevel 9 > > #userdir via mod-rewrite via ldap via perl > RewriteMap lowercase int:tolower > # rewrite script with ldap lookup > RewriteMap uid-til-user prg:/home/scripts/users.homepage.pl > # rewrite on host match > RewriteCond ${lowercase:%{HTTP_HOST}|NONE} ^users\.example\.tld$ > #get userid and path and rewrite > RewriteRule ^/~(.*?)/(.*?)$ /${uid-til-user:$1|fejl}$2 You left one out: http://httpd.apache.org/docs/2.2/mod/mod_rewrite.html#rewritelock > > > I have a simple static HTML page, with 20 images > > <pre> > > 1<img src="image1.jpg"> > > 2<img src="image2.jpg"> > > …etc… > > 19<img src="image19.jpg"> > > 20<img src="image20.jpg"> > > </pre> > > > Fetching this page gives this rewritelog (| cut -d"/" -f4- for shorter line) > > sid#80161a730][rid#8017ca0a0/initial] (2) init rewrite engine with > requested uri /~ccc2404/example/image11.jpg > > sid#80161a730][rid#8017ca0a0/initial] (3) applying pattern > '^/~(.*?)/(.*?)$' to uri '/~ccc2404/example/image11.jpg' > > sid#80161a730][rid#8017c80a0/initial] (2) rewrite > '/~ccc2404/example/image9.jpg' -> '/2404/example/image9.jpg' > > sid#80161a730][rid#8017c80a0/initial] (2) local path result: > /2404/example/image9.jpg > > sid#80161a730][rid#8017c80a0/initial] (2) prefixed with document_root > to /home/www/data/2404/example/image9.jpg > > sid#80161a730][rid#8017ce0a0/initial] (2) rewrite > '/~ccc2404/example/image10.jpg' -> > '//mail/7/1/0/1/0/442//web/ccc/mail/7/1/0/1/0/442//web/ccc2404/example/image10.jpg' > > sid#80161a730][rid#8017c80a0/initial] (1) go-ahead with > /home/www/data/2404/example/image9.jpg [OK] > > > > image9 is loaded fine ! > > > > then comes TWO inits with SAME rid (8017c80a0) > > > > the map program returns > > //mail/7/1/0/1/0/442//web/ccc/mail/7/1/0/1/0/442//web/ccc2404/ > //mail/7/1/0/1/0/442//web/ccc/mail/7/1/0/1/0/442//web/ccc2404/ > > But somehow the two answers get “mixed” > > '/~ccc2404/example/image13.jpg' -> '/ml7101042/eb/ccc2404/example/image13.jpg' > > '/~ccc2404/example/image18.jpg' -> > '//ai//////4/w/mail/7/1/0/1/0/442//web/ccc2404/example/image18.jpg' > > > > Full log here: > > > > sid#80161a730][rid#8017c80a0/initial] (2) init rewrite engine with > requested uri /~ccc2404/example/image13.jpg > > sid#80161a730][rid#8017c80a0/initial] (2) init rewrite engine with > requested uri /~ccc2404/example/image18.jpg > > sid#80161a730][rid#8017c80a0/initial] (3) applying pattern > '^/~(.*?)/(.*?)$' to uri '/~ccc2404/example/image18.jpg' > > sid#80161a730][rid#8017c80a0/initial] (3) applying pattern > '^/~(.*?)/(.*?)$' to uri '/~ccc2404/example/image13.jpg' > > sid#80161a730][rid#8017c80a0/initial] (2) rewrite > '/~ccc2404/example/image13.jpg' -> > '/ml7101042/eb/ccc2404/example/image13.jpg' > > sid#80161a730][rid#8017c80a0/initial] (2) local path result: > /ml7101042/eb/ccc2404/example/image13.jpg > > sid#80161a730][rid#8017c80a0/initial] (2) prefixed with document_root > to /home/www/data/ml7101042/eb/ccc2404/example/image13.jpg > > sid#80161a730][rid#8017c80a0/initial] (1) go-ahead with > /home/www/data/ml7101042/eb/ccc2404/example/image13.jpg [OK] > > sid#80161a730][rid#8017c80a0/initial] (2) rewrite > '/~ccc2404/example/image18.jpg' -> > '//ai//////4/w/mail/7/1/0/1/0/442//web/ccc2404/example/image18.jpg' > > sid#80161a730][rid#8017c80a0/initial] (2) local path result: > //ai//////4/w/mail/7/1/0/1/0/442//web/ccc2404/example/image18.jpg > > sid#80161a730][rid#8017c80a0/initial] (2) prefixed with document_root > to /home/www/data/ai/4/w/mail/7/1/0/1/0/442/web/ccc2404/example/image18.jpg > > sid#80161a730][rid#8017c80a0/initial] (1) go-ahead with > /home/www/data/ai/4/w/mail/7/1/0/1/0/442/web/ccc2404/example/image18.jpg > [OK] > > > > Why does this happen ? How is “rid” calculated ? > > > > And How do I fix the problem ? > > > > Any hints is appreciated – I am kind of stuck here. > > > > /Søren Schrøder > > > > -- > Søren Schrøder. > Obey Gravity - It's the law ! > > --------------------------------------------------------------------- > To unsubscribe, e-mail: users-unsubscribe@xxxxxxxxxxxxxxxx > For additional commands, e-mail: users-help@xxxxxxxxxxxxxxxx > -- Born in Roswell... married an alien... http://emptyhammock.com/ --------------------------------------------------------------------- To unsubscribe, e-mail: users-unsubscribe@xxxxxxxxxxxxxxxx For additional commands, e-mail: users-help@xxxxxxxxxxxxxxxx