2011/04/20

Wordpressで404 Not Found な時にトップページにリダイレクトさせる時まで楽したいの。

 

404

 

Wordpressで404が帰るページにアクセスされた時に、
トップページへリダイレクトさせるにはどないやるんやろうーと思って調べていたら、
下記のようなサンプルがダーッと出てきた。

404.phpにおまじないを書く吉だそうな。今年も大吉やった。

header( "location: http://ドメイン名/" );
または
header( "location: /" );

 

なる、302を返すのね。

でもソースにURL直打ちとかは正直引くなあ。。。
使いまわし出来ないし、いちいち打つの面倒くさいし、不具合の元になるしね。。。

楽だけは人一倍したいんです。

 

ということで、下記のように書き換えた。

header( "location: " . home_url() );

[設定]→[一般設定]→サイトのアドレス (URL) で指定された文字列が、
home_url() に代入されるという仕組み。

 

これでちょっとだけ汎用性ができた。

手元のメモに仕様追加しとこう。404の場合→一般設定のサイトのアドレス(URL) に飛ぶ

あとはプラグインから飛び先を指定できるように改造しなおせばおkかな。

今更Wordpressなんか触りだしてるからタコ部屋から抜け出せないんだな。きっと。

 

本来なら 404.phpがあればそっちへ、なければサイトのアドレスへリダイレクト。
ってやりたいんだけど、どこにこちょこちょすればええんやろか。

 


Wordpressのマニュアルってけっこう親切。素敵。
http://wpdocs.sourceforge.jp/Creating_an_Error_404_Page

PHP の header 関数のマニュアル。
http://php.net/manual/ja/function.header.php

4 件のコメント:

  1. Apache の httpd.conf に

    ErrorDocument 404 /

    とか設定しちゃうのはどう?
    404 返しつつトップページに飛ぶ。

    ちなみにトップページは DirectoryIndex で設定されている。

    普通は
    DirectoryIndex index.html index.php
    とか設定されてるかなー。

    返信削除
  2. httpd.confが使えるとええんだが、大体は安物レンタルサーバやねん;;

    ただただリダイレクトするだけなら.htaccessでもええんやけど、
    Wordpressの作法に乗っ取り、拡張性を持たせたまますっ飛ばすならこの辺に書いとくのが無難なのかなと。

    そのリダイレクトのやり方記事にまとめてよん。

    返信削除
  3. プラグイン使うやり方ですけど
    「Redirection」というプラグインを使用すると簡単に設定できるかも?

    参考:
    http://urbangiraffe.com/plugins/redirection/
    http://www.rgblog.net/2008/02/22/wp-pligin-redirection-regex/

    返信削除
  4. >匿名さん

    「Redirection」非常に素敵ですね。
    既存の静的サイトにWordpressを導入するパターンで威力を発揮しそう。
    ありがとうございます!

    返信削除