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
Apache の httpd.conf に
返信削除ErrorDocument 404 /
とか設定しちゃうのはどう?
404 返しつつトップページに飛ぶ。
ちなみにトップページは DirectoryIndex で設定されている。
普通は
DirectoryIndex index.html index.php
とか設定されてるかなー。
httpd.confが使えるとええんだが、大体は安物レンタルサーバやねん;;
返信削除ただただリダイレクトするだけなら.htaccessでもええんやけど、
Wordpressの作法に乗っ取り、拡張性を持たせたまますっ飛ばすならこの辺に書いとくのが無難なのかなと。
そのリダイレクトのやり方記事にまとめてよん。
プラグイン使うやり方ですけど
返信削除「Redirection」というプラグインを使用すると簡単に設定できるかも?
参考:
http://urbangiraffe.com/plugins/redirection/
http://www.rgblog.net/2008/02/22/wp-pligin-redirection-regex/
>匿名さん
返信削除「Redirection」非常に素敵ですね。
既存の静的サイトにWordpressを導入するパターンで威力を発揮しそう。
ありがとうございます!