301リダイレクトが可能なのは最初のサーバーの設定のみです。これはグーグルが推奨する方法となります。サーバー内プログラムを権限の関係で変更できないというときは、javascript設定が対策としては良い方法とはいえますが、ページを強制的に遷移させるだけとなり、301ステータスコードは返さないということを分かっていなければなりません。
サーバーでの301リダイレクトには、PHPなどのサーバーアプリケーションで設定する方法と、apacheHTTP serverなどのHTTPサーバーで設定する方法の2つあります。基本的にはサーバーアプリケーションでの設定が推奨されています。APACHEでのリダイレクト関連の処理を記述すべてをするとなるととても煩雑になってしまう可能性があるからです。けれど、PHPなどのなどのサーバーアプリケーションの処理というのは、SEO担当者が手を加えにくい部分ということがあるようです。サーバーサイドで301リダイレクト処理ができないといった場合には、javascript でリダイレクトが推奨されているようです。
301リダイレクトを設定できない際の正規方法は、caonial設定というものがあります。HTMLでのcanonical設定とHTTPヘッダーでのcanonical設定の2つがあります。HTTPヘッダというのは、プラウザからサーバーへ送信する際にHTTPリクエストに含まれる情報を指します。同一内容のPDFが複数のURLで存在する場合には、HTTPヘッダーでcanoical設定を記述することで、正規のPDFファイルを検索エンジンに伝えることが可能ということになります。