web-dev-qa-db-ja.com

特定のIDを持つURLを新しいドメイン名の新しいURLにリダイレクトする方法は?

URL内に特定のWordがあるすべてのページをリダイレクトしたい。両方のWebサイトに同じ記事があります。

例えば:

videos.example.com.ph/its-showtime-hashtags-hashtags-and-dawns-popular-dance-moves_966aaafd8.html

にリダイレクトする必要があります

example.com.ph/its-showtime-hashtags-hashtags-and-dawns-popular-dance-moves_8a4521384.html

違いは、ドメインと最後のIDです。 URL http://videos.example.com.phおよびWord its-showtimeを含むすべての記事は、http://example.com.ph/の同じ記事にリダイレクトする必要があります

これが難しすぎる場合は、example.com.phメインページへのリダイレクトも問題ありません。

3
Aesir John

URLのソースIDと宛先IDが異なり、2つの間をマッピングする簡単な方法がない場合、「すべての記事」のsimpleリダイレクトを行うことはできません。たとえば、966aaafd88a4521384にマップされることをどのようにして知ることができますか?

これを行うには、サーバー構成(すべてのソース/宛先IDを含む)でRewriteMapを作成するか、ルックアップを実行してからリダイレクトする別のスクリプトにリクエストを書き換える必要があります。

ただし、問題がなければ、すべての要求を他のドメインのドキュメントルートにリダイレクトできます。しかし、これが懸念事項である場合、これは一般的に悪いユーザーエクスペリエンスです(したがって、SEOにとっても悪い)。

videos.example.com.phサブドメインの.htaccessファイルの上部:

Options +FollowSymLinks
RewriteEngine On
RewriteCond %{HTTP_Host} =videos.example.com.ph [NC]
RewriteRule ^its-showtime http://example.com.ph/ [NC,R=302,L]

videos.example.com.phサブドメインとメインドメインが異なる場所で物理的にホストされている場合、RewriteCondディレクティブを削除できます。

これは、(例のように)URLの先頭のits-showtimeと一致することに注意してください。 URLのanywhereと一致させる必要がある場合は、^プレフィックスを削除してください。

また、これは大文字と小文字を区別しない一致であることに注意してください(NC-NOCASE)-これが不要な場合は、NCフラグをRewriteRuleから削除します。 (NCRewriteCondフラグはそのままにしておく必要があります。これは、そうでなければまだ解決する不正なリクエストを単にキャッチするためです。)

302(一時的な)リダイレクトを301(永続的な)リダイレクトに変更します。正常に動作していると確信したら-これが永続的なリダイレクトであると仮定しますか?

4
MrWhite