Warning: Cannot modify header information - headers already sent by (output started at /home/fukuro-press/www/fukuropress/index.php:4) in /home/fukuro-press/www/fukuropress/wp-content/plugins/all-in-one-seo-pack/app/Common/Meta/Robots.php on line 87

Warning: Cannot modify header information - headers already sent by (output started at /home/fukuro-press/www/fukuropress/index.php:4) in /home/fukuro-press/www/fukuropress/wp-includes/feed-rss2.php on line 8
転送 | Fukuro Press https://fukuro-press.com 「できない」を「デキル」に変えるWordPressブログ術 Thu, 14 Mar 2024 08:30:43 +0000 ja hourly 1 https://wordpress.org/?v=4.9.25 https://fukuro-press.com/wp-content/uploads/2018/08/favicon-1.png 転送 | Fukuro Press https://fukuro-press.com 32 32 プラグインなしでWordPressページをリダイレクトする方法【PHPコード例】 https://fukuro-press.com/wp-redirect-page-without-plugin/ https://fukuro-press.com/wp-redirect-page-without-plugin/#respond Wed, 23 Nov 2022 05:30:45 +0000 https://fukuro-press.com/?p=14814 WordPressで次のような処理が必要でした 投稿ページを個別にリダイレクト ある規則に沿ってページリダイレクト ただしプラグインは使いた...

The post プラグインなしでWordPressページをリダイレクトする方法【PHPコード例】 first appeared on Fukuro Press.

]]>

WordPressで次のような処理が必要でした

  • 投稿ページを個別にリダイレクト
  • ある規則に沿ってページリダイレクト
  • ただしプラグインは使いたくない

本当はプラグインを入れるのが確実だけど、どうしてもプラグインなしでリダイレクト(Redirect)したい場面があります。(PHPコードでどうにかしたい)

そんなマニアックな悩みへの解決策です。

ただし自己責任で行ってください。

個別ページごとにリダイレクトする方法

例えばこんなケースを考えてみましょう。

↓ リダイレクトさせたいWP投稿ページURL

https://example.com/hoge/post-1234

↓ これを次のURLにリダイレクトさせたい

https://example.com/hoge/jikosyoukai

後から投稿URLを変えたいパターンです。

WordPress投稿画面では記事作成すると post-1234 みたいなスラッグが自動生成され、それに気づかないで記事投稿することがあります。そんな時に個別URLだけリダイレクトさせたいみたいな…

※ より正確に書くなら 自動生成されたスラッグで公開 ⇒ Googleにインデックスされる ⇒ 検索流入でアクセスがある ← こういうスラッグを手動変更できない状況を想定

そんな時は次の手順でリダイレクト可能です。

1.使用してるテーマのfunctions.phpを開く

ここではPHPコードで何とかします。

だから初めにテーマのfunctions.phpを開きましょう。

↓ 外観 -> テーマファイルエディター を開く

外観 -> テーマファイルエディター を開く

↓ 右のファイル一覧から function.php オープン

テーマファイルエディターの右のファイル一覧から function.php オープン

ただし親テーマを直接編集するのは良くありません。

念のために子テーマを作っておいてください。

▼ プラグインによるWP子テーマの作り方

WordPress子テーマを面倒なことせず1分で作成する方法
WordPressで子テーマを作る場合、手動作成するのは慣れない人にとって無駄に手間と時間がかかる作業です。そこでここでは初心者でも簡単に子テーマが作れる Child Theme Configurator の使い方を紹介します。

なくてもいいけど親テーマを更新したら親テーマへの変更はすべて消えちゃいます。それを防ぐために子テーマという仕組みがあるんですね。

とりあえずfunctions.phpを開ければヨシ

2.リダイレクト用のPHPコードを追加する

ここでは次のリダイレクトをします。

  • リダイレク元ページURL
    https://example.com/hoge/post-1234
  • リダイレクト先ページURL
    https://example.com/hoge/jikosyoukai

その場合はfunctions.phpにこんなコードを追加します。

↓ 個別にリダイレクトさせるコード例

function redirect_page() {
    if (isset($_SERVER['HTTPS']) &&
        ($_SERVER['HTTPS'] == 'on' || $_SERVER['HTTPS'] == 1) ||
        isset($_SERVER['HTTP_X_FORWARDED_PROTO']) &&
        $_SERVER['HTTP_X_FORWARDED_PROTO'] == 'https'
    ) {
	  $protocol = 'https://';
	}else {
	  $protocol = 'http://';
	}
    $currenturl = $protocol.$_SERVER['HTTP_HOST'].$_SERVER['REQUEST_URI'];
    $request_uri = $_SERVER['REQUEST_URI']; 
    switch ($request_uri) {
        case '/hoge/post-1234':
            $urlto = home_url('/hoge/jikosyoukai');
            break;
        default:
            return;
    }
    
    if ($currenturl != $urlto)
        exit( wp_redirect( $urlto ) );
}
add_action( 'template_redirect', 'redirect_page' );

何してるかは大まかに分かりますよね?

分からないなら手を出さないでください。

リダイレクトを正規表現的に行うPHPコード例

ここからはさらに応用的な話です。

もっと汎用的なリダイレクト処理をしてみます。

例えば次のリダイレクトルールを考えます。

  • リダイレクト前 : 投稿日時が含まれるURL
    https://example.com/2022/11/19/my-post
  • リダイレクト後 : 日時を含まないURL
    https://example.com//my-post

初めはスラッグ規則を「投稿日時+投稿名」にしていたけど、あとからパーマリンク設定を変えて「投稿名」だけにしたケースです。

その場合、汎用的なリダイレクトで対処可能です。

↓ より汎用的なリダイレクトPHPコード例

function redirect_page() {
    if (isset($_SERVER['HTTPS']) &&
        ($_SERVER['HTTPS'] == 'on' || $_SERVER['HTTPS'] == 1) ||
        isset($_SERVER['HTTP_X_FORWARDED_PROTO']) &&
        $_SERVER['HTTP_X_FORWARDED_PROTO'] == 'https'
    ) {
        $protocol = 'https://';
    } else {
        $protocol = 'http://';
    }
    $currenturl = $protocol.$_SERVER['HTTP_HOST'].$_SERVER['REQUEST_URI'];
    $request_uri = $_SERVER['REQUEST_URI']; //wp_make_link_relative($currenturl);
    $redirect_pattern_1 = '/[0-9]{2}\\/[0-9]{2}\\/[0-9]{2}/i';
	if(preg_match($redirect_pattern_1, $request_uri) !== 0){
		$urlto = home_url(preg_replace($redirect_pattern_1, '', $request_uri));
	}else{
		return;
	}
    if ($currenturl != $urlto)
        exit( wp_redirect( $urlto ) );
}
add_action( 'template_redirect', 'redirect_page' );

かなり分かりにくいですね…

本当に原始的にリダイレクトルールを定義してます。

普通にリダイレクトプラグイン使うのが確実

身もふたもないけど次の結論に至りました。

《《 普通にプラグイン使う方が楽 》》

だって自分でPHPコードを書いてしまうと、

  • リダイレクトの度にコード追加が必要
  • WordPress構成を破壊するリスクがある
  • 不具合が出たらすべて自己責任になる

ここまでリスクを取る価値はあるのか…

リダイレクト規則が1つか2つなら問題ないかも

でも複数のリダイレクトルールが必要なら、
大人しくプラグインを使うのが賢いと思います。

▼ この記事のRedirectionプラグインが優秀!

WordPress内だけでリダイレクトを設定&管理! Redirection の使い方
Redirectionプラグイン使うとサーバー側のファイルを一切編集することなくWordPress内だけでリダイレクト設定から管理まで全て行えます。超便利だったので、初心者向けに使い方・実用な応用例をまとめました。

プラグインを使うのが確実ですね。

The post プラグインなしでWordPressページをリダイレクトする方法【PHPコード例】 first appeared on Fukuro Press.

]]>
https://fukuro-press.com/wp-redirect-page-without-plugin/feed/ 0
WordPress内だけでリダイレクトを設定&管理! Redirection の使い方 https://fukuro-press.com/wordpress-plugin-redirection/ https://fukuro-press.com/wordpress-plugin-redirection/#respond Sun, 13 Jan 2019 11:00:24 +0000 https://fukuro-press.com/?p=8276 リダイレクトは技術素人には難しすぎます。 サーバー技術に明るい人があるなら問題ないですが、知識なしの状態からとすると色々覚えなくてはならない...

The post WordPress内だけでリダイレクトを設定&管理! Redirection の使い方 first appeared on Fukuro Press.

]]>

リダイレクトは技術素人には難しすぎます。

サーバー技術に明るい人があるなら問題ないですが、知識なしの状態からとすると色々覚えなくてはならないし面倒です。

また下手な設定がブログ構成を壊してしまう原因にも・・・

 

そこで便利なのが Redirection というプラグイン

これを使うことでリダイレクト設定から管理まで全てWordPress内で行うことができます。サーバー側のファイルを編集するとか面倒な作業は一切ありません。

ここではこのRedirectionプラグインの使い方・実用例をまとめました。

リダイレクトとはそもそも何?

まず初めにリダイレクトについて簡単に説明します。

これは一言でいうと「あるページから別のページに自動的に移動させる」という技術的なテクニックのこと

 

使用例としては次のような用途に使われることが多いです。

  • 旧サイトから新サイトへの移行
  • URL先頭の http 、https の統一
  • URLのwwwありなしを統一する

元のURLを残したまま新しいURLに移動させたり、SEO的な評価を下げないためにページを統一させるなど色々な場面で使うテクニックだと思います。

関連記事wwwのありなしをWordPressで統一する方法【URL正規化】

 

このリダイレクト処理には .htaccess というサーバー側での設定を自由に変更できる設定ファイルが必要になります。そこに必要な記述を追加するだけですが、結構面倒です。

なぜなら次のような手間やリスクがあるため

  • .htaccess の複雑な構文を覚えなければならない
  • いちいち .htaccess を開いて編集する必要あり
  • 構文を間違えるとサイト構成を壊すリスクも・・・

そもそも構文を覚える時点で大分手間がかかります。また検索などして使用例を見つけたとしてもサイトごとに書き換えが必要だったりするので初心者向けではありません。

また .htaccess は本当に重要なファイルなので下手に編集するとサイト構成を壊す原因にもなってしまいます。

 

そういう手間を減らして安全にリダイレクト設定をしたい・・・

という場合に便利なのが Redirection プラグイン

ではその導入や使い方を次から説明していきます。

Redirectionの導入

まずWordPressにこのプラグインをインストール・導入しましょう。

その導入手順は次の通り

 

まずメニューから「プラグイン」ー>「新規追加」をオープン

 

すると新規追加画面が開くのでプラグインの検索欄に「redirection」と入力

しばらくすると検索結果一番上に次のプラグインが表示されるので「今すぐインストール」ボタンを押してインストールしてください。

WordPress内だけでリダイレクト設定・管理ができる超便利なプラグイン

ちなみに手動インストールする場合は次ページからzipがダウンロード可能

https://ja.wordpress.org/plugins/redirection/

インストールが終わったら「今すぐインストール」ボタンが「有効化」ボタンに変わるので、最後にそれも押すのも忘れずに。

これでリダイレクト設定を行えるようになります。

リダイレクトルールの作成手順

リダイレクト設定追加には ルール(規則) を作成します。

その基本的な追加手順を説明すると次の通り

 

まずメニューから「ツール」ー>「Redirection」をオープン

WordPressメニューから「ツール」ー>「Redirection」をオープン

 

すると次のような画面が開くので、画面上部の「新規追加」ボタンをクリック

リダイレクト規則追加には画面上部の「新規追加」ボタンをクリック

 

そうすると次のようなルール作成フォームが表示されると思います。

リダイレクト(転送)のルール作成フォームが表示される

このフォームの「ソースURL」にリダイレクト元のURL(古いURL)、「ターゲットURL」にリダイレクトさせたいURLを入力してルールを作成するだけです。

これだけだと分かりにくいので例を使って説明します。

 

例えば次のような条件でリダイレクトさせたいとしましょう。

リダイレクト元のページ : https://example.com/old-page/
リダイレクト先のページ : https://example.com/new-page/

単純に example.com 内で「old-page」から「new-page」に転送させたいだけです。

 

この例の場合、次のようにソースURLとターゲットURLを入力して「転送ルールを作成」ボタンをクリックするとルールが追加されます。

ソースURLとターゲットURLを入力して「転送ルールを作成」ボタンをクリック

ただ単に個別のページから別ページにリダイレクトさせるだけなら、他の入力・選択項目は一切構う必要はありません。

 

ちなみに追加したルールは一覧からも確認することができます。

 

また当然一度作成したルールは後からでも再編集可能です。

次画像のようにURL欄内のメニューから編集削除無効化Check Redirect(リダイレクトが正しいかの確認)の4つの操作が選べます。

 

以上が Redirection を使った基本的な転送ルールの作成方法

一切 .htaccess を編集することなくWordPress内で全て完結できるのが便利ですね。

Redirectionの実用的なリダイレクト例

Redirectionでは「正規表現」を使うことで簡単な記述で複雑&実用的なリダイレクト設定を行うこともできます。

例えばあるパターンに当てはまるページを全て特定ページに転送させたり、旧サイトを新サイトに移行させたりなど・・

そういった高度な処理をするには正規表現を使うのが一番簡単です。

 

この正規表現を使うにはルール作成フォームで「正規表現」にチェックを入れるだけ

Redirectionで正規表現を使うにはルール作成フォームで「正規表現」にチェックを入れるだけ

そしてソースURLにパターンを入力することで当てはまる全ページをターゲットURLに転送させることができます。

この機能を使った実用的な例をいくつか紹介すると次の通り

実例1. 新サイトから旧サイトへの移転

例えば次のケースのようにドメインを変えたなどでサイト移転したいとしましょう。

旧サイトURL : https://example.com/
新サイトURL : https://example.net/

このとき旧ドメイン( example.com )が残ったままだと検索エンジンからのページ評価が新旧で分散してしまうのであまりよくありません。

新サイトに正しい評価を集めるためには旧サイトからリダイレクトするのがベストです。

 

そのために新サイトから旧サイトへのリダイレクトを行うルールは次の通り

新サイトから旧サイトへのリダイレクトを行うルール例

ソースURL   : /(.*)
ターゲットURL : https://example.net/$1/

ただしターゲットURLの example.net は各自の新しいドメイン名に置き換えしてください。

また何度も言うように「正規表現」にチェックを入れるのも忘れずに

実例2.日付つきパーマリンクを日付なしに統一

日付つきパーマリンクとは次の例のように「/2018/11/26」みたいな日付が付いたパーマリンク形式のこと

https://example.com/2018/11/26/example-page/

このパーマリンクを何らかの事情で次の日付なしの形式に変更したとしましょう。

https://example.com/example-page/

この場合、元の日付ありパーマリンクには404エラーでアクセスできなくなります。

そのためもし日付ありのほうで被リンクなどをもらっていた場合、リンク切れになってしまいSEO的な評価が下がることがあります。

 

それを回避するために日付ありから日付なしにリダイレクトするルールは次の通り

日付ありから日付なしにリダイレクトするルール例

ソースURL   : ^/\d{4}/\d{2}/\d{2}/(.*)
ターゲットURL : /$1/

これについてはソースもターゲットも両方そのままコピペでOKです。

ルールを追加すれば日付ありURLにアクセスがあった時、自動的に日付なしURLのほうに転送されます。

実例3. WPユーザー名を隠す

実はWordPressユーザー名というのは対策していないと外部から丸見えです。

例えば次のようなURLにアクセスすればユーザー名は簡単に分かってしまいます。

https://example.com?author=1

そしてこのようなURLにアクセスし、再度ブラウザのURL欄を見れば次のようにユーザー名が丸見えで表示されるはず(対策をしていない場合)

https://example.com/author/ユーザー名/

ログインに必要な情報が1つばれてしまうのはセキュリティ的には良くないですよね。

 

そこでユーザー名を隠すためのルールは次の通り

ユーザー名を隠すためのルール

ソースURL   : /author/(.*)/
ターゲットURL : /

これもドメイン名などに合わせて書き換える必要はありません。全部コピペでOKです。

ルールを作成すれば「?author=1」にアクセスされたとき、自動的にトップページに転送されるようになったはずです。

 

ちなみにこれと同じことはプラグインを使ってもできます。

関連記事 : WordPressのユーザー名は実は丸見え・・確実に外部から隠す方法

詳しくは上記事でも紹介したので興味のある方はそちらもご覧ください。

リンク管理にはこんなプラグインもおススメ!

ここまでで Redirection を使ったリダイレクトのやり方や応用例を解説してきました。

この他にもリンク作成・管理するなら次のプラグインも役に立つはずです

詳しい導入手順や使い方、注意点については各記事をご覧ください。

どのプラグインも便利ですが、特にリンクをボタン化できる Max Buttons は使い方によってはかなり重宝すると思います。

まとめ

ブログ運営していてリダイレクト処理がどうしても必要だけど

「リダイレクト処理のやり方が分からない」
「下手に設定してサイト構成を壊すのが怖い」
「いちいち .htaccess を編集するのが面倒」

などの場合はこのプラグインを使うのがおススメです。

以上リダイレクトの設定・管理ができる Redirection プラグインについてでした。

The post WordPress内だけでリダイレクトを設定&管理! Redirection の使い方 first appeared on Fukuro Press.

]]>
https://fukuro-press.com/wordpress-plugin-redirection/feed/ 0