私はそれの上に3つのサイトを持つマルチサイトサブドメインインストールを持っています。 2つのサイトでドメインマッピングが使用されています。
メインサイト(id = 1)には、次のような以前の構造の古いページである301がいくつか必要です。
Redirect 301 /about/careers/ /contact/careers/
他のサイトの1つ(id = 3)にはメインサイトに移動したコンテンツがあります。通常、私はそのサイトの.htaccessでこれをリダイレクトします:
Redirect 301 /news/events/ http://domain.com/news/events/
マルチサイトには1つの.htaccessファイルしかありません。メインの.htaccessファイルから個々のサイト/ドメインごとに301のリダイレクトを追加する方法はありますか?
はい、
RewriteEngine On
RewriteBase /
# Blog ID1 Rewrite Rules
RewriteCond %{HTTP_Host} ^(www\.)?primary-domain.co.uk [NC]
RewriteRule ^about/careers/$ contact/careers/ [R=301,NC,L]
RewriteRule ^glossary.html$ sitemap/ [R=301,NC,L]
# Blog ID3 Rewrite Rules
RewriteCond %{HTTP_Host} ^(www\.)?mapped-domain3.co.uk [NC]
RewriteRule ^about/$ http://primary-domain.co.uk/about/ [R=301,NC,L]
RewriteRule ^news/$ http://primary-domain.co.uk/news/ [R=301,NC,L]
これはうまくいきます、私の特定のサイトにはさらに158行ありますが、あなたはアイデアを得ます。私はこれに対する明確な解決策を見つけていませんでしたが、 この記事 は私を大いに助けました。
これが他の誰かが同じ解決策を探すのに役立つことを願っています;)
私は自分のシステムでもそれを理解するために上記の情報を使いました。しかし、実装において、私はそれをそのように構成しなければならないことがわかりました。
RewriteEngine On
RewriteBase /
# Website site-1 Rewrite Rules
RewriteCond %{HTTP_Host} ^(www\.)?domain.com [NC]
RewriteRule ^that-one-page-old/$ that-one-page-new/ [R=301,L]
RewriteCond %{HTTP_Host} ^(www\.)?domain.com [NC]
RewriteRule ^that-other-page-old.php$ that-other-page-new/ [R=301,L]
このように構成しなかった場合、that-one-page-old /は正常に機能しますが、次のルール(that-other-page-old.php)がシステム上のすべてのドメインに適用されます。上記のように一覧表示されている場合、各ルールは意図したドメインにのみ適用されます。私と同じ問題を抱えている人に役立つことを願っています。
サブドメインを含むワードプレスマルチサイト用のhtaccessファイルでこれを使用しました。サブドメインページを別のメインドメインページにリダイレクトします。
RewriteEngine On
RewriteCond %{HTTP_Host} ^subdomain\.domain\.org [NC]
RewriteRule ^redirect-from-subdmoain-page-url/(.*)$ https://domain.org/redirect-to-page-url/$1 [L,R]