特定のディレクトリに特定のドメイン名の使用を強制する Mod_rewrite ルール

特定のディレクトリに特定のドメイン名の使用を強制する Mod_rewrite ルール

サイト上の特定のディレクトリに別のホスト名/ドメイン名を強制的に使用したいと思います。

現在、mainsite.com/directory に複数の Web ページを含むディレクトリがあります。そのディレクトリだけに存在するページについては、ユーザーのアドレス バーでドメイン名を differentsite.com に変更したいと考えています。理想的には、ページは differentsite.com のルート レベルに表示されます。

これを実現するには、WordPress .htaccess ファイルにどのようなルールを追加すればよいでしょうか?

答え1

これを実行するディレクトリごとに、次の 3 行のブロックを作成します。これはディレクティブの後に実行しますRewriteEngine on。この例では、www.example.com がディレクトリに使用するドメインです。

RewriteCond %{REQUEST_URI} ^/directory1(.*)
RewriteCond %{HTTP_HOST} !^www\.example\.com$
RewriteRule .* http://www.example.com%1 [L,R]

テストが完了したら、 SEO フレンドリ性を高めるために、永続的なリダイレクトを示すよう[L,R]に に変更します[L,R=301]。ブラウザーがリダイレクトをキャッシュするためテストが複雑になるため、最初はこれを使用しません。

上記が機能するには、サーバーが他のドメインをリッスンするように構成されていることを確認し、そのドメインにアクセスするときに、サブフォルダー (この場合は directory1) へのフルパスをドメインのドキュメント ルートとして使用する必要があります。

その方法がわからず、URL にサブディレクトリがあっても構わない場合は、メイン ドメインと同じドキュメント ルートを使用するように他のドメインを構成し、次のルールを使用します。

RewriteCond %{REQUEST_URI} ^/directory1.*
RewriteCond %{HTTP_HOST} !^www\.example\.com$
RewriteRule .* http://www.example.com%{REQUEST_URI} [L,R]

関連情報