.htaccess 複数の 301 リダイレクト

.htaccess 複数の 301 リダイレクト

Apache サーバーでホストされているブログを新しいドメインに移行しています。

ブログ投稿のパーマリンクはそのままですが、新しいドメインでは URL スラッグが変更されるページがいくつかあります。

私の質問は、次のことが可能かどうか、またそれを書き換えルールでどのように行うかということです。

ブログ投稿のURLスラッグ/パーマリンクと古いドメインのほとんどのページは、新しいドメインでも同じままです。したがって、新しいドメインで同じ/スラッグを見つけるので、https://huiskopenomteverhuren.nl/からにリダイレクトするリダイレクトルールを追加できると思います。https://vastgoedmentor.com

古い W​​eb サイトの一部のページは新しいパーマリンクに移動しました。そのため、たとえばリダイレクトするための追加ルールが必要になりhttps://huiskopenomteverhuren.nl/kennisbank/https://vastgoedmentor.com/resources他のいくつかのページでも同様に行う必要があります。

答え1

サーバー設定内で正規表現を使用して複数のディレクティブを作成できますRewriteRule。パーマリンクを変更した特定のリダイレクトから始める必要があります。他のすべてのページの一般的なリダイレクトは最後に追加できます。

RewriteEngine On

RewriteRule ^/kennisbank(/.*)?$ https://vastgoedmentor.com/resources$1 [END,R=301]
RewriteRule ^/old2(/.*)?$       https://vastgoedmentor.com/new2$1      [END,R=301]
RewriteRule ^/old3(/.*)?$       https://vastgoedmentor.com/new3$1      [END,R=301]

RewriteRule ^/(.*)$           https://vastgoedmentor.com/$1           [END,R=301]

の表記は、(/.*)?末尾のスラッシュの有無にかかわらずリダイレクトを実行し、新しい URL に追加のパスの詳細を追加します。したがって、huiskopenomteverhuren.nl/kennisbank/something-or-nothingになりますvastgoedmentor.com/resources/something-or-nothing

詳細についてはRewriteRulehttps://httpd.apache.org/docs/current/mod/mod_rewrite.html#rewriterule

すべてのルールが異なるドメインを指しているため、ループに陥るリスクはありません。ただし、END残りのルールが評価されないように、すべてのルールにフラグを追加することをお勧めします。フラグ以外にもLENDフラグは .htaccess ファイル内の追加ルールの評価も回避します。

旗の詳細については、 フラグは、http://httpd.apache.org/docs/current/rewrite/flags.html で参照できます。

関連情報