4

すべての 404 エラーを別のドメインにリダイレクトするにはどうすればよいですか?

私は見つけた

Error 404 http://example.com/error.html

しかし、私は必要です:

if Error 404 (.*) http://example.com/$1

私はもう試した:

RewriteEngine On

RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^(.*)$ http://example.com/$1

しかし、それはすべてのリクエストをリダイレクトします。実際、404リンクのあるページを生成する.phpスクリプトを実行すると、スクリプトのURLは次のようになります

http://example.com/script.php

代わりに、URL は同じままで、404 リンクだけが他のドメインにリダイレクトされるはずです。

ソリューション?

4

1 に答える 1

7

1 -ErrorDocument次のようなディレクティブを作成します。

ErrorDocument 404 /404.php

2 - 次に、次の404.phpように作成します。

<?php
   if ($_SERVER["HTTP_HOST"] == "domain.com") // current domain
      header('Location: http://example.com' . $_SERVER["REQUEST_URI"], TRUE, 301);
?>

更新 .htaccess のみを使用:

RewriteCond %{HTTP_HOST} ^domain\.com$ [NC]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d 
RewriteRule ^ http://example.com%{REQUEST_URI} [L,R=301]
于 2013-09-12T12:18:37.143 に答える