404とWordPress

WordPressは存在しないページの処理について結構貧弱.

例えば,http://aerial.st/fooというページはWordPress上で作製されていないし,また実際そんなファイルも存在しないのに,アクセスするとページが表示される.でもこれはhttp://aerial.stを表示したのと全く同じ結果で,もちろん意図していないこと.

ページ処理の流れとしては,

  1. Apacheが.htaccessに記述されたRewriteCond/RewriteRuleに従って,リクエストされたファイルもしくはディレクトリ(の実体,というのかな?)が存在しなかったら,WordPressに処理を投げる.
  2. WordPressがindex.phpのなかでゴチャゴチャ弄って処理を施す.

という感じだと思う.ちなみにRedirectCond/RedirectRuleは次のとおり:

RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]

パーマリンクのための.htaccessの記述はこれだけで,WordPress 1.5あたりと比べるとずいぶんと簡素,そのかわり挙動は大雑把.

WordPress内部で自分の扱うページ以外に対して404を吐いてくれればそれでいいんだけど,どうにも不十分な感が否めない.一応404の処理を向上させるためのハックが書かれたページがあったので実践してみたけど,どうだろう?:小粋空間:WordPress でステータスコード 404(Not Found)を返却するエラーページを作る

ついでに,WordPress内部でのURLリライトはWordPress Internal Rewrite Viewer Pluginを使用すれば,その一覧を表示することができる.


Comments

  1. ikm

    2010/12/2 Thursday at Dec 02, 2010 06:38

    http://aerial.st/foo を見たらちゃんと404が出ていた。 問題無し!


Leave a Reply

Your email address will not be published.

You may use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong> <img localsrc="" alt="">