次のコードは、同じURLパスを維持したまま、古いドメインを新しいドメインにリダイレクトします。
RewriteEngine on
RewriteCond %{HTTP_Host} !^www\.newdomain\.co.uk
RewriteRule (.*) https://www.newdomain.co.uk/$1 [R=301,L]
ただし、新しいサイトには存在しない古いサイトのURLもあるため、上記のルールで404が返されます。
これらを代替URLパスにリダイレクトするにはどうすればよいですか?
これらの特定のURLをリダイレクトする必要がありますbefore上記のキャッチオールリダイレクト。例えば:
RewriteRule ^old-url-does-not-exist$ /new-url-that-does-exist [R=301,L]
ただ注意してください... .htaccess
では、ソースURLパターンにスラッシュプレフィックスがありません。正規表現^old-url-does-not-exist$
はURL /old-url-does-not-exist
と一致します。宛先URLにはスラッシュプレフィックスがあります。それはただRewriteRule
構文です。