Je crois que le code suivant redirigera mon ancien domaine vers mon nouveau domaine en conservant les mêmes chemins d'URL.
RewriteEngine on
RewriteCond %{HTTP_Host} !^www\.newdomain\.co.uk
RewriteRule (.*) https://www.newdomain.co.uk/$1 [R=301,L]
Toutefois, certains anciens URL de mon ancien site n'existent pas sur mon nouveau site. Ils renverraient donc un 404 avec la règle ci-dessus.
Comment puis-je les rediriger vers un autre chemin d'URL?
Vous avez simplement besoin de rediriger ces URL spécifiques avant votre redirection fourre-tout ci-dessus. Par exemple:
RewriteRule ^old-url-does-not-exist$ /new-url-that-does-exist [R=301,L]
Juste pour noter ... dans .htaccess
il n'y a pas de préfixe de barre oblique sur le modèle d'URL source, c'est-à-dire. l'expression régulière ^old-url-does-not-exist$
correspond à l'URL /old-url-does-not-exist
. Considérant qu’il existe un préfixe barre oblique sur l’URL de destination. C'est juste la syntaxe RewriteRule
.