ファイルページへのアクセスをトップページへ遷移させる

ファイルページへのアクセスをトップページへ遷移させる

WordPressでは、メディアへのアップロード時に画像やファイル用のページが自動生成されます。

これは一般的に「添付ファイルのページ」と呼ばれます

これらのページも、何も設定変更しなければ、検索エンジンが巡回して「これも検索対象のページなのね」と判断し、検索の対処となります。

ネット検索でそれらを見つけた方がアクセスすると、画像やファイルへのURLリンクが入っただけのページが表示され、クリックすれば簡単にダウンロードできるようになっています。

セキュリティ上で考えた場合、画像であれば表示画面から右クリックして「画像を保存」とほぼ同じ動作なので問題ありませんが、圧縮ファイルなどの場合には直接ダウンロードされるのは避けたいところです。特に有料で何かを提供する場合には大問題となります。

そこで【HABONE】では、以下の2つの機能を使ってセキュリティ向上を図ることができます。

  1. アップロードしたファイルに対して自動生成されるページを検索エンジンに登録されにくくする(noindex、nofollowメタタグの追加)
  2. 自動生成されたページへ直接アクセスされた場合、トップページへ移動するようにする

アップロードしたファイルに対して自動生成されるページを検索エンジンに登録されにくくするには

メディアへアップロードした画像やファイルにIDを付けて管理しやすくするため、ページの自動生成を止めることはできませんので、本機能では、生成されたページに対して検索エンジンへ登録しないように依頼するメタタグを追加します。

この措置はあくまでも「依頼」するものですので、すべての検索エンジンで完全に登録されないようにするものではありません。

設定はテーマカスタマイザーから「サイトの最適化」→「サイトの最適化」を開き、「画像ファイルURLをNoindexにする」にチェックを入れて保存するだけです。

自動生成されたページへ直接アクセスされた場合、トップページへ移動するようにする

前述したように、メタタグの追加はお願いベースなので、この措置をする前に生成されたページは既に検索エンジンに登録されているかも知れませんし、今後登録されてしまう可能性もあります。

そこで、もう一つ設定を行って、もしも添付ファイルのページへアクセスされた際には、トップページへ移動させるようにします。

設定は、テーマカスタマイザーから「便利機能」→「セキュリティ」を開き、「添付ファイルページをリダイレクトする」にチェックを入れて保存するだけです。

特定の添付ファイルページへのアクセスを任意の投稿や固定ページへ移動させる方法

上記設定では、すべての添付ファイルページへアクセスされた際の転送先がトップページになるようにしていますが、何かを配布するようなコンテンツを持つサイトでは、配布の案内をするページへ遷移させたい場合もあるかと思います。

テーマカスタマイザー上でそれらをカスタマイズすることはできませんが、以下の手順でそのような動作をさせることができます。

コードを子テーマのfunctions.phpへ追加する

以下のコードを子テーマのfunctions.phpへ追加します。

/* 画像ページ・添付ファイルページをトップページへ移動 */
function habone_redirect_to_home_page() {
	//特定のページを特定のURLへ移動(301)
	if (is_single('添付ファイルページのID') ) {
     wp_redirect( '遷移先のURL', 301 );
      exit;
    }

	//設定していない画像や添付ファイルをトップページへ移動(302)
	if (is_attachment() ) {
     wp_redirect( home_url(), 302 );
      exit;
    }	
}

複数ある場合には、下記のようにすることで、複数の添付ファイルページへ対応できます

/* 画像ページ・添付ファイルページをトップページへ移動 */
function habone_redirect_to_home_page() {
	//特定のページを特定のURLへ移動(301)
	if (is_single('添付ファイルページのID') ) {
     wp_redirect( '遷移先のURL', 301 );
      exit;
    }

	//特定のページを特定のURLへ移動(301)
	if (is_single('添付ファイルページのID②') ) {
     wp_redirect( '遷移先のURL②', 301 );
      exit;
    }

	//特定のページを特定のURLへ移動(301)
	if (is_single('添付ファイルページのID③') ) {
     wp_redirect( '遷移先のURL③', 301 );
      exit;
    }

	//設定していない画像や添付ファイルをトップページへ移動(302)
	if (is_attachment() ) {
     wp_redirect( home_url(), 302 );
      exit;
    }	
}

「//特定のページを特定のURLへ移動」から始まる5行分を、「設定していない画像や添付ファイルをトップページへ移動」の上へ追加していけばOKです

転送設定をする

コード内の「添付ファイルページのID」と「遷移先のURL」を設定します。

WordPressの標準では、メディア一覧を開いても、添付ファイルページのIDは表示されませんので、Show IDsプラグインなどを一時的に使用してIDを調べるとよいでしょう

作者:

WordPress用テーマ「ha-Basic」「HABONE」の開発、プラグインやテーマの翻訳、WordPressの使い方やカスタマイズ方法などの情報を配信しています。

年齢:40代 趣味/園芸・ペット・卓球