古いWordPressドメインのURLを同じURL構造に、新しいドメインにリダイレクトしようとしています。
したがって、たとえば:
oldsite.com/post-name-1
はnewsite.com/post-name-1
にリダイレクトします
oldsite.com/post-name-2
はnewsite.com/post-name-2
...などにリダイレクトします。
古いドメインの.htaccess
ファイルに以下を追加してみました。
RewriteRule ^/(.*)$ https://newsite.com/$1 [R=301,L]
これを実現するには、.htaccess
ファイルにどのようなルールを書き込む必要がありますか?
Redirect 301 / https://newsite.com/
リダイレクト のドキュメントを参照してください。 Apacheのすべてにmod_rewriteを使用する傾向がありますが、これは単純なRedirect
が機能する優れたケースの1つです。
RewriteRule ^/(.*)$ https://newsite.com/$1 [R=301,L]
RewriteRule
patternにスラッシュプレフィックスがあるため、これはディレクトリごとの.htaccess
ファイルコンテキストでは機能しません。 directory(または.htaccess
)コンテキストでは、パターンマッチングが発生する前に、ディレクトリプレフィックス(特にスラッシュで終わる)が最初にURLパスから削除されます-したがって、一致したURLパススラッシュで始まることはありません。現状では、このディレクティブはserverまたはvirtualhostコンテキストで使用することを目的としています。
.htaccess
では、スラッシュプレフィックスを削除する(またはオプションにする)必要があります。
RewriteRule ^(.*)$ https://newsite.com/$1 [R=301,L]
ただし、oldsite.com
とnewsite.com
を指定すると、現在異なるホストを指し、WordPress .htaccess
ディレクティブはoldsite.com
から削除されているため、実装する必要があります@AndrewSchulmanが示唆するように、無条件のRedirect
。