httpd-users mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Nick Tkach <ntk...@gmail.com>
Subject Re: [users@httpd] Re: Vanity URL Rewrites Best Practices?
Date Wed, 05 Oct 2011 19:48:12 GMT
On Mon, Oct 3, 2011 at 1:41 PM, Andrew Schulman
<andrex@alumni.utexas.net> wrote:
>
> > For example,
> >
> > http://foo.com/mmh/maintenance_plan/tip?contentCategoryType=MaintenanceTip&id=%2Fwww%2Favm_webapps%2Fmmh%2Fmaintenance-tips%2Fcontent%2Fafter_blizzard.xml
> >
> > Being sent to
> >
> >  http://foo.com/mmh/articles/authored/after-blizzard
> >
> > We've got a very frequent process where we'll get a huge block of rewrites
> > like this that vary just by the last part and so far just keep going through
> > and adding dozens and dozens of new rewrite rules each time.  Surely there
> > has to be a better way?  (Ideally that just involve Apache changes and not
> > code changes on the back-end)
>
> Are the requests similar enough that you can write a single regular expression,
> or maybe two or three, that extracts the useful part from the URL in every case?
> For example,
>
> RewriteCond %{REQUEST_URI} ^/mmh/
> RewriteCond %{QUERY_STRING} \%2F(\w+)\.xml$
> RewriteRule .* /mmh/articles/authored/%1
>
> If you can describe all of the requests in this way or something like it, you're
> done.  If not, if each request is so different that it needs its own regular
> expression, then it seems you're doomed to keep doing it as you are now.

Yes, I'm very nearly there, thanks!  The only thing is, I'm not quite
sure how to combine what you have here with a RewriteMap.  If I had
something like this:

RewriteMap vanmap txt:/tmp/map.txt

RewriteCond %{REQUEST_URI} ^/mmh/
RewriteCond %{QUERY_STRING} \%2F(\w+)\.xml$


Then can I just do a rewrite rule at the end like this?

RewriteRule .* /mmh/${vanmap:$1}? [L,NC,R=302]


Because I tried that and it keeps failing to pull any kind of key out
of the REQUEST_URI.

>
> Good luck,
> Andrew.
>
>
> ---------------------------------------------------------------------
> The official User-To-User support forum of the Apache HTTP Server Project.
> See <URL:http://httpd.apache.org/userslist.html> for more info.
> To unsubscribe, e-mail: users-unsubscribe@httpd.apache.org
>   "   from the digest: users-digest-unsubscribe@httpd.apache.org
> For additional commands, e-mail: users-help@httpd.apache.org
>

---------------------------------------------------------------------
The official User-To-User support forum of the Apache HTTP Server Project.
See <URL:http://httpd.apache.org/userslist.html> for more info.
To unsubscribe, e-mail: users-unsubscribe@httpd.apache.org
   "   from the digest: users-digest-unsubscribe@httpd.apache.org
For additional commands, e-mail: users-help@httpd.apache.org


Mime
View raw message