The photos where stored in a similar path stated below.
/images/photo_id/photos_style/photo_id.jpg
Example:
/images/200/portrait/200.jpg
The requirement was not to show the original path in URL and it should resemble like the below
/<photo_id>/<photo_id>_<_style>.jpg
Example:
/200/200_portrait.jpg
The logic had more complexity than explained here which required a math calculation to get the complete path. To achieve the calculation a perl rewrite rule was introduced.
RewriteMap prg MapType:/path/to/rewrite_rule.pl
The perl script was something similar to below with more logic
#!/usr/bin/perlThe script started working well by redirecting to original directory (internally) with output like
$| = 1;
while () {
# ...put here any transformations or lookups...
print $_;
}
/images/200/portrait/200.jpg
But when the server got loaded heavily with more requests. The output scrambled like
/mages/200/portit/200.jpg
/ramages/200/portrait/200.jpg
etc...
Which was due to the perl script not in sync with Apache. The problem was solved when a RewriteLock was introduced. But still a surprise how this solved it immediately... ;-)
RewriteLock "/path/to/empty/lock/file"
in the global section of httpd.conf
No comments:
Post a Comment