web-dev-qa-db-ja.com

古いドメインを同じURL構造の新しいドメインにリダイレクトする

古いWordPressドメインのURLを同じURL構造に、新しいドメインにリダイレクトしようとしています。

したがって、たとえば:

  • oldsite.com/post-name-1newsite.com/post-name-1にリダイレクトします

  • oldsite.com/post-name-2newsite.com/post-name-2...などにリダイレクトします。

古いドメインの.htaccessファイルに以下を追加してみました。

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

これを実現するには、.htaccessファイルにどのようなルールを書き込む必要がありますか?

2
BuiltBySam
Redirect 301 / https://newsite.com/

リダイレクト のドキュメントを参照してください。 Apacheのすべてにmod_rewriteを使用する傾向がありますが、これは単純なRedirectが機能する優れたケースの1つです。

1
Andrew Schulman
RewriteRule ^/(.*)$ https://newsite.com/$1 [R=301,L]

RewriteRulepatternにスラッシュプレフィックスがあるため、これはディレクトリごとの.htaccessファイルコンテキストでは機能しません。 directory(または.htaccess)コンテキストでは、パターンマッチングが発生する前に、ディレクトリプレフィックス(特にスラッシュで終わる)が最初にURLパスから削除されます-したがって、一致したURLパススラッシュで始まることはありません。現状では、このディレクティブはserverまたはvirtualhostコンテキストで使用することを目的としています。

.htaccessでは、スラッシュプレフィックスを削除する(またはオプションにする)必要があります。

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

ただし、oldsite.comnewsite.comを指定すると、現在異なるホストを指し、WordPress .htaccessディレクティブはoldsite.comから削除されているため、実装する必要があります@AndrewSchulmanが示唆するように、無条件のRedirect

1
MrWhite