Re: Re: Vanity URL Rewrites Best Practices?

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On Wed, Oct 5, 2011 at 2:48 PM, Nick Tkach <ntkach@xxxxxxxxx> wrote:
> On Mon, Oct 3, 2011 at 1:41 PM, Andrew Schulman
> <andrex@xxxxxxxxxxxxxxxxx> 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@xxxxxxxxxxxxxxxx
>>   "   from the digest: users-digest-unsubscribe@xxxxxxxxxxxxxxxx
>> For additional commands, e-mail: users-help@xxxxxxxxxxxxxxxx
>>
>

Just to answer my own question, in case it helps someone else down the
road, what I was missing was that inside the curly braces you need to
dereference the variable with % rather than $.  So the right version
of what I posted above is:

 RewriteMap vanmap txt:/tmp/map.txt

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

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

---------------------------------------------------------------------
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@xxxxxxxxxxxxxxxx
   "   from the digest: users-digest-unsubscribe@xxxxxxxxxxxxxxxx
For additional commands, e-mail: users-help@xxxxxxxxxxxxxxxx




[Index of Archives]     [Open SSH Users]     [Linux ACPI]     [Linux Kernel]     [Linux Laptop]     [Kernel Newbies]     [Security]     [Netfilter]     [Bugtraq]     [Squid]     [Yosemite News]     [MIPS Linux]     [ARM Linux]     [Linux Security]     [Linux RAID]     [Samba]     [Video 4 Linux]     [Device Mapper]

  Powered by Linux