Apache RewriteMap example

Today I needed to rewrite a list of about 1000 URL’s to a new location. Our product database was cleaned and new URL’s were created… Using RewriteMap from Apache’s Mod_rewrite comes in handy here.

In my case I needed to rewrite URL’s like this:

www.exampledomain.com/en/product1234/product_detail.php

to

www.exampledomain.com/en/travelbox_12/product_detail.php

Where in my URL’s I had a 1000 different ‘poducts1234’ to rewrite to a new URL.

 

Here’s the HOWTO:

Create a textfile on your server with 2 columns. Something that would look like this:

And save it to a folder you wish, eg

from this file,  create a rewrite database,  more info: httxt2dbm

Once done,  open your vhosts config and add the following configuration:

A bit of clarification:

The line with content:

creates a condition that if the rewritemap contains the URI and the value is not “” (so an empty string) then it should perform the RewriteRule.

The rewrite rule itself is pretty obvious. It’ll rewrite the URL’s for which the rewritemap is found to the new product URL, and also keep the trailing parameters.

Configure NewRelic on Plesk

Installing NewRelic on a Plesk server is as straight forward as any other NewRelic installation. However… it’s not that easy to split up your PHP Applications on a per vhost configuration in Plesk.

I found this to be very usefull: pixlsHQ NewRelic Customer Template for Plesk

It adds the NewRelic Application names inside the by Plesk generated vhost configurations.

It’s very easy to implement, so I won’t explain here how to do it 🙂

Update November 12 – 2015:
The github link does no longer work on Plesk v12. However, the following easy work around is sufficient for my needs.
Just add

newrelic.appname = “{DOCROOT}”

to you Service Plans => PHP Settings => Additional configuration directives.

That way, you’ll get every subscriptions reported as a different Application with a name of: /var/www/vhosts/subscriptionname/httpdocs

Install PHP 5.2 on Ubuntu 12.04 LTS

Remark: you should already have switched to PHP5.3 and heck, even 5.4…. but some old projects aren’t worth the dev time to update the code to PHP 5.3 or 5.4.

Having issues with your PHP 5.2 legacy websites after migrating them to new hardware and OS releases, which normally run on PHP5.3 or 5.4?

The best way to install PHP5.2 is by adding Karmic repositories to your apt sources. This way, you can simply install PHP 5.2 from package.

An easy way to add the sources is by running a small shell script that:

1) Creates a list of all your currently installed PHP packages.

2) Create the karmic.list files sources.list.d, holding the correct repo’s

3) Create a prefences file in /etc/apt/preferences.d, that pins your PHP version to the PHP5.2 version.

This script is copy pasted from Khalid:

There are of course other ways of installing PHP5.2 on Ubuntu 12.04 LTS, but this one works for me… and I have had no issues so far on my servers and sites..

Credits to: Randy Fay and Khalid

 UPDATE: 

Due to the fact that karmic is no longer in the Archive repo’s, the script needs a little change (replace archive by old-releases)

 

 

UPDATE2:

Today we had a crashed server that needed to be reinstalled. We had some problem with the PIN priority, packages installed still were 5.3.10… Bugger.

But looking a little further, you can use apt-mark hold to ‘pin’ package version to the installed packages.

So we had to install the PHP5.2 packages and ‘hold’ them to that version using: