ブログをいじるのが趣味の、PATE(@c713net)です。
このブログのパーマリンクを変更しました。
パーマリンクの変更って、いろいろ気をつけないとGoogle先生から消えちゃったりするみたいですね。怖いですねー。
ってことで、数日間ちょこちょことググりながら、簡単で楽で確実な方法を探していました。
今回やった方法
WordPressのプラグインを使った方法もありますが、バージョンアップやらなんやらで、挙動がおかしくなったらアウトなので却下。
なんだかんだで、一番の王道は.htaccessに直書きで301リダイレクト。もう、これを越える最善策はないという結論になりました。
で、この大量にある記事どーすんだよ…と。1記事ずつ手入力してたら日が暮れてしまうどころか、何日もかかってしまう。
半自動化
超めんどくさがりな私としては、どうしても手間を省きたい。どーにかならないものかと調べていたら…
【wordpressサイト限定】リダイレクトのための.htaccessへの記述を表計算ソフトとget_postsで効率化|ウェブシュフ
こんな素晴らしい記事を発見!これは楽ちん&感謝。
作業開始
だいたい、さっきのサイトに書いてある手順通りにやってみました。
パーマリンク変更前の全記事URLを取得
まず、下書き記事を作ります。(なんでもOK)
で、「下書きとして保存」をすると、その記事にPostIDがつきます。
https://c713.net/wp-admin/post.php?post=12254&action=edit&message=10
このURLだと、12254がIDです。
<?php if(is_single(‘○○’)){?>
<ul>
<?php
global $post;
$args = array( ‘numberposts’ =>10000);
$myposts = get_posts( $args );
foreach( $myposts as $post ) : setup_postdata($post); ?>
<li><?php the_permalink(); ?></li>
<?php endforeach; ?>
</ul>
<?php } ?>【wordpressサイト限定】リダイレクトのための.htaccessへの記述を表計算ソフトとget_postsで効率化|ウェブシュフより引用
次に、1行目にある「○○」のところを、下書きとして保存した記事のIDに書き換えます。(数字の部分だけ。post=は必要ない)
書き換えたものを、single.phpの一番下に貼り付けて保存。
記事に戻って、プレビュー表示すると、画面の一番下に、全記事のURLがずらーっと出てきます。
これを、表計算ソフトにコピペします。今回はGoogle先生のスプレッドシートを使いました。
301リダイレクトの記述を作成
最終的には、.htaccessに、
Redirect permanent /archives/20140329235925/ https://c713.net/20140329235925/
こういう形式の書き方を全記事分書けばOKってことなので、表計算ソフトを使って全記事分一気に作成します。
表計算ソフトをほとんど使ったことがない私でもできたので超簡単です。
- A:Redirect permanent(301リダイレクトのこと)
- B:半角スペース
- C:変更前のURL(https://c713.jpを省く)
- D:半角スペース
- E:変更後のURL(リダイレクト先のURL)
↑ 完成形はこれ。最終的にはこの形を作ればOK。
C列を作成
さっき取得した、パーマリンク変更前の全記事分をC列に貼り付けます。
で、スプレッドシート上にあるメニューの中の「編集」の中にある「検索と置換…」っていう機能があるので、これを使って「https://c713.jp」の部分を省きます。
上の段に、https://c713.jp(自分のドメインで)を入力。(最後に「/」を入れてしまうと、必要な「/」が消えてしまうので入れない。)
下の段を空欄にしておくと、https://c713.jpがそのまま削除される処理になります。
これで、C列は完成。
A・B・D列を作成
次に、B列とD列の全ての行に半角スペースを入れます。
ええええっ!全部これ手作業でやるの????んー…って悩みながらいろいろ弄くってたら、あっさりできました。
- 1行目に半角スペース入力。入力した枠?をコピー
- 2行目を選択して、シフトキー押しながら下矢印キー押すと、下の枠がどんどん選択されていくので、一番下まで
- ペースト
これでできます。
この要領で、A列の「Redirect permanent」も一気にコピペします。
E列を作成
あとは、E列だけ。ここまでできたら、あともう少し。
WordPressに戻って、パーマリンクの設定を変更しちゃいます。
で、最初にC列を作る時にやった手順で、今度はパーマリンク変更後の新しいURLを取得し、E列にコピペ。
これで完成!
.htaccessに貼り付ける
これをスプレッドシート上で、コントーロールキー(Ctrl)+Aキーで全選択、コントーロールキー(Ctrl)+Cキーでコピーします。
で、.htaccessに貼り付けるだけ!って思って貼り付けたら…
スペース広すぎ!なんだこれ。
ってことで、しょうがないから、Windowsに最初からついてる「メモ帳」に貼り付けて、「編集>置換」でスペース部分を一括で半角スペースに置き換え。
完成したものを.htaccessに貼り付けて作業終了。
↑ Xserverなら、こんな感じでファイルマネージャーから直接編集できるので、FTPソフト使うより楽です。
最終確認
これで、全記事が新しいURLにリダイレクトされているはず。
↑ ちゃんとできてるかどうか不安な方は、こういうツールで数記事ぐらい確認すると安心です。
内部リンクの変更
リダイレクトされてるので、変更しなくてもリンク切れではありませんが、記事内に書いた他の記事へのリンクも変更しておきました。
今回のパーマリンクの変更は、
https://c713.net/archives/20140329235925/
こういう形式から、/archives/を省いて、
こういう形にしたので、超有名なWordPressのプラグイン「Search Regex」を使って変更します。
↑ 「Replace & Save」を押すと、全記事内の該当部分が自動で全て一気に置き換わります。
パーマリンクをこれにしている理由
パーマリンク関連の事でいろいろ検索してると、カテゴリを入れたりだとかスラッグを入れたりだとかいろいろありますが、当ブログでは「https://c713.net/20140329235925/」という形にしてあります。これは何かというと、記事を書いた年月日時分秒をつなげただけです。
なんでこういう風にしてるの?
カテゴリを含めると、カテゴリを変更した時(内部構造を変更したい時)に困る。(困らない方法もあるかもしれないけど知らない)
スラッグを入れると、同じカテゴリの記事を大量に書くと、被らないスラッグを決めるのに悩む。というか手間すぎてめんどくさい
投稿IDだとWordPressを引っ越しする時に変わる可能性があるとどっかで読んだけど、年月日時分秒だと永久に変更はないし、同時に記事は書けないから絶対に被ることもない。
で、更にシンプルな方がいいし…/archives/部分も取っちゃえ!って事で、今回「https://c713.net/20140329235925/」という形になりました。
これだと「SEOがー。ダメすぎるだろー。」という意見も聞こえてきそうですが、何年も前だとこういうのも気にして作らないとダメだったかもしれないですけど、もうGoogle先生もそこまでバカじゃないかなり進化していると思いますので、たぶんこれで大丈夫だと思います。
さいごに
変更したテンプレートを元に戻したり、作業台記事を削除したりして、Google等の各種検索エンジンにサイトマップの送信をしておけば、リダイレクトに関しては完璧なはずです。
パーマリンク変更&リダイレクト設定した後に、Google先生から消えてしまったとか、検索ランキングが下がったとかいろいろ聞きますが、大丈夫な事を祈ります。もし消えちゃったらもーしらない
ってことで、どうなるのかしばらく様子見です。