Redirect A Single Page To Another Subdomain Using Apache

Sometimes you get hit with a load capacity issue that you may have not expected. For example, you have created a site with multiple scripts and these scripts are now being accessed so much that the one server isn’t able to cope with all of the traffic. Rather than spending a fortune setting up fancy hadoop cluster, you can simply setup subdomains. For example if you moved http://website.com/scripts/script1.php to http://scriptserver1.website.com/scripts/script1.php you could better balance the load across multiple servers and use DNS records to change where it is pointing. Setting the subdomains up is simple, but the problem is how do you setup a redirect on the old server that will push all traffic to the new url? You could use PHP, but why not let Apache do the job instead of bringing PHP into the mix.

Using the .htaccess file in the root directory of your website you can make Apache redirect

# Permanent URL redirect - generated by www.rapidtables.com
Redirect 301 /scripts/script1.php https://scriptserver1.website.com/scriptsscript1.php

If you are using a script that required some extra variables you can instead use the RedirectMatch method instead. This will allow you to perform the same redirect above where you will redirect a file from one location and send it to a file in a different location. The only difference here is that any url variables will be passed along with the redirect. For example, if your original URL contained something like script1.php?foo=123&bar=123454. All of the information after the ? would also be passed along to the new script.

RedirectMatch 301 scripts/script1.php$ https://scriptserver1.website.com/scripts/script1.php$1

Leave a Reply

This site uses Akismet to reduce spam. Learn how your comment data is processed.