web-dev-qa-db-ja.com

完全なドメイン.htaccess 301は同じパスを保持しますが、一部のURLを異なるパスにリダイレクトします

次のコードは、同じURLパスを維持したまま、古いドメインを新しいドメインにリダイレクトします。

RewriteEngine on
RewriteCond %{HTTP_Host} !^www\.newdomain\.co.uk 
RewriteRule (.*) https://www.newdomain.co.uk/$1 [R=301,L]

ただし、新しいサイトには存在しない古いサイトのURLもあるため、上記のルールで404が返されます。

これらを代替URLパスにリダイレクトするにはどうすればよいですか?

3
Moclin

これらの特定の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構文です。

2
DocRoot