1

www.example.com約2000のドキュメント(PDF、Wordドキュメント、Excel)を含む古いサイト( )があります。すべての2000ドキュメント(PDFおよびWordドキュメント)は、これらの既存のリンクを使用して相互に参照しています。

www.example.net別のドキュメントパスを使用して別のサイト()を作成しました。訪問を失わないように、また古いリンクを含む古いファイルを持っているユーザーが引き続き新しいサイトからドキュメントを取得できるように、古いURLを新しいURLにマップしたいと思います。

古いドキュメントパス:http://www.example.com/sites/docs/abc.pdf

新しいドキュメントパス:http://www.example.net/files/resources/def.pdf

(ドメイン名が変更され、ドキュメントへのパスが変更され、ドキュメント名自体が変更されていることに注意してください。ドキュメント名の変更にパターンはありません。)

一般的な解決策:

  1. .htaccessリダイレクトしますが、2000のドキュメントがあるので、大変な作業です

  2. .phpファイル内のハードコードされたURLを使用した通常のリダイレクト。これは、.htaccess

これらよりも良い解決策はありますか?

4

1 に答える 1

5

ドキュメントが次のように完全に一意である場合(つまり、2 つの間にまったく相関関係がない場合)、2000 個すべてを明示的にリダイレクトする方法はありませんabcd.pdfpqrs5000_foo.pdfそれらをすべて htaccess/vhost/server 構成ファイルに配置するか、別のファイルに配置して aRewriteMapおよび txt マップ タイプを使用するかは問題です。ただし、仮想ホストまたはサーバー構成でマップを定義する必要があります。htaccess ファイルでは機能しませんが、htaccess ファイルでマップ自体を使用できます。

ファイル名が同じで、パス名だけが異なる場合、2000 回のリダイレクトはまったく必要ありません。次のようにします。

RewriteEngine On
RewriteCond %{HTTP_HOST} ^(www\.)?example\.com$ [NC]
RewriteRule ^sites/docs/(.*)$ http://www.example.net/files/resources/$1 [L,R=301]

または、代わりに mod_alias を使用します。

Redirect /sites/docs http://www.example.net/files/resources
于 2012-09-18T05:48:53.683 に答える