【2017年02月19日:放談】パーマーリンクを変更し301リダイレクト

Wordpress 301 redirect
WordPressな話

こんにちワイキキ、放談の時間です。

いきなりですが、URLの付け方(パーマリンク)が変わりました。短くなったでしょ。

[おしらせ]
がっかり・オブ・ザ・イヤー2016-2017 、もうすぐ投票終了。
がっかりを投票するなら急げ!!

【投票してね】がっかり・オブ・ザ・イヤー 2016-2017 シーズン

[SPONSORED LINK]

度胸のパーマーリンク変更

これまで、このブログのURLは、

・[ドメイン]/[年]/[月]/[記事id].html

でしたが、今後は

・[ドメイン]/[記事id]/

となります。

なぜ、こんな事をするかというと、URLが長い上に最後の「.html」が今ではダサいからです。

昔はSEO対策として、「.html」とつく方がGoogleさんからの評価が高いという都市伝説がありました。そのせいでムーバブルタイプというブログソフトが人気があったのですが、今では全く意味はありません。むしろ、URLが長いと損なのです。

 

そこで、URLの付け方を変えたのですが、これにはかなりの度胸が必要です。なぜなら、旧URLでのサイトのリンクはおろか評価が全部死ぬわけですから。

そこで、旧URLから新URLに「引っ越したよ」と教える「301リダイレクト」という処理が必要なのですが、これまで大量の記事を書いてきたので、全部の記事に対して手動で設定することは不可能。

そこで、プラグインを探したのですが、あらゆるサイトで勧めている「Permalink Redirect」というプラグインが最適でした。
しかし、プラグインが置いているハズのページが「404」。つまりリンク切れで存在しないのです。

 

あまりに、どの技術サイトも同じことを書きすぎてるので、「こういう技術サイトって、みんな人のネタをパクるだけで自分で検証をしていないんだろうなぁ。」と思いました。

どいつもこいつも使えねぇ!ということで、自らリダイレクトする処理を作成しました。

/*
functions.php
 旧パーマリンクからのリダイレクト
%year%/%monthnum%/%post_id%.html
↓
/%post_id%/
*/
add_action( 'wp', 'redirect404' );
function redirect404() {
	global $wp_query;
	if ( is_404() ) {
		$pathData = pathinfo( $_SERVER["REQUEST_URI"]);
		$id = $pathData["filename"];
		if ( preg_match( '/^\d+$/', $id ) && $id != 0 ) {//数値や0以外
			wp_redirect( get_permalink( $id ), 301 );
			exit;
		}
	}
}

404エラー(ページが存在しない)を拾ったら、リクエストしたURLからIDの部分を拾って、現在のパーマリンクにリダイレクトします。こんな感じで旧URLからの301リダイレクトができました。良かった良かった。

 

なぜNFLのサイトでこんな事を書くかと思うでしょ。

同じような悩みを抱えている人が検索でこのブログに迷いこんだところを、ついでにNFLの記事を読ませて、新らたなファンに仕立て上げるためです。

そう、NFLブログと言えどNFLの事ばかり書いていてはいけません。このTOPICSでNFLと関係ない事を書くのは、NFLファンのすそ野を広げるためなのです!!

(本当はTOPICSを更新するネタが無かっただけですけどね。)

保存

保存

この記事が気に入ったら
いいね ! しよう

Twitter で

コメントを残す

CAPTCHA