There was a requirement for a website on the server to have a case-insensitive.
There is no simple option in nginx to make it case-insensitive, there are also no nested if statements available.
This isn’t easy to achieve, but the below seems to have done it me (for only 1 URI!)
location ~* ^/TNG/$ {
return 301 https://www.theirdomain.co.uk/TNG/index.php;
}
location ~* ^/TNG$ {
return 301 https://www.theirdomain.co.uk/TNG/index.php;
}
set $BOTH "";
# Does the case-insensitive pattern match?
if ( $request_uri ~* ^/TNG/index.php$ )
{
set $BOTH "${BOTH}1";
}
# Is it not an exact match to the correct case?
if ( $request_uri != /TNG/index.php )
{
set $BOTH "${BOTH}2";
}
# If both true, then redirect to the correct case
if ( $BOTH = 12 )
{
return 301 https://www.theirdomain.co.uk/TNG/index.php;
}