web-dev-qa-db-ja.com

ページがない場合は、他のサイトにリダイレクトします

サイトを移動し、古いサイトを使用したい。両方を使用する最良の方法は、現在のページを表示することです。ページがない場合は、新しいサイトの同じアドレスにリダイレクトします。

古いサイトの.htaccessファイルからのみこれを行うことはできますか?

これができない場合は、別の方法を考えます。 404ページを新しいサイトの404.phpファイルにリダイレクトできます。その後、http.refererと404.phpファイルを使用して同じURLをリダイレクトできますか?

1
İsmail

これはデータベース駆動型のサイトであるため、.htaccessでこのタイプのリダイレクトを行うことはできません。リクエストの結果がずっと遅くなるまで(データベースがクエリされるまで)404になることは知られていないためです。

ただし、CMSの404テンプレートでこれを行うことができます(例:WordPressの404.php)。

例えば:

<?php
// Redirect all requests that don't resolve on the old site to the new site
header('Location: http://example.com'.$_SERVER['REQUEST_URI'],true,302);
exit;

example.comは、新しいサイトのドメインです。

302301に変更するのは、正常に機能していることが確実な場合のみです。

1
MrWhite