1
votes

I want to have one URL still being served from a subdirectory on the old domain but redirect all others from the parent directory to the new domain.

www.olddomain.co.uk/directorya/directoryb -> no redirect www.olddomain.co.uk/directorya -> www.newdomain.co.uk/directorya

This works if the URL is typed with a trailing slash

RewriteCond %{REQUEST_URI} !^/directorya\/directoryb [NC]
RewriteRule ^(.*)$ http://www.newdomain.co.uk/ [L,R=301]

So http://www.olddomain.co.uk/directorya/directoryb/ works but http://www.olddomain.co.uk/directorya/directoryb fails.

Tried added $ at the end and other connotations and tried

RewriteEngine on
RewriteRule !^myspecialdirectory/mynextdirectory($|/) http://newdomain.example%{REQUEST_URI} [L,R=301]

from Redirect entire site except one directory to a new site - apache .htaccess

What do I need to do to get http://www.olddomain.co.uk/directorya/directoryb/ or http://www.olddomain.co.uk/directorya/directoryb to redirect? (while all other http://www.olddomain.co.uk pages go to http://www.newdomain.co.uk

For reasons I don't understand http://www.olddomain.co.uk/directorya/directoryb goes to Google and doesn't redirect

1

1 Answers

1
votes

Try using THE_REQUEST variable and make sure this this very first rule:

RewriteCond %{THE_REQUEST} !\s+/+directorya/directoryb [NC]
RewriteRule ^ http://www.newdomain.co.uk/? [L,R=301]

Test it after clearing your browser cache.