Redirect a list of URLs to another URL, using functions.php

What I wish to do

I have a number of WordPress URLs I need to redirect, along with a 301 permanent redirect header being sent to browser.

The URLs to redirect are:

https://www.mydomain.com.au/search-result/?location=victoria

https://www.mydomain.com.au/search-result/?location=new-south-wales

https://www.mydomain.com.au/search-result/?location=queensland

https://www.mydomain.com.au/search-result/?location=south-australia

https://www.mydomain.com.au/search-result/?location=tasmania

https://www.mydomain.com.au/search-result/?location=northern-territory

Where to redirect to

I want to redirect them to the home page: https://mydomain.com.au/

I am not sure whether it’s best to test for all six of those location= strings, or to simply test for the one location= string that is not to redirect.

The one that is not to redirect is ?location=western-australia. E.g.,

https://www.mydomain.com.au/search-result/?location=western-australia

Additional considerations

Note that there are other /search-result/ URLs that have different variables in the query strings, such as ?weather=... or ?water=.... For example, https://www.mydomain.com.au/search-result/?location=victoria&weather=part-shade&water=&pasture=

AS seen in that example, it’s also possible multiple variables will be in the query string, such as ?location=tasmania&weather=&water=moderate&pasture=.

So I need to test for the presence of the above listed locations= irrespective of whether or not it has other variables after it. The location= variable will always be the first in the query string.

I am thinking it may be as simple as testing for /search-result/ AND victoria; tasmania; northern-territory; etc. in the URL.

A different approach?

Would it make sense to do this using an .htaccess redirect, as opposed to having WordPress do it? I am not sure of the advantages or disadvantages of each approach.
After posting this, and also seeing Admiral Noisy Bottom’s comment, I’ve realised doing this with .htaccess rewrite or redirect rules in going to be the most efficient approach. In the interest of upping my PHP and WordPress specific PHP skills, I would still like to see how this could be achieved on that level. So I am leaving the question here. I’ve posted a modified version of this question on Stackoverflow asking how to do this with Redirect rules in htaccess.

0

Leave a Comment