ちょっとした自分用メモレベルで失礼。
HTTPステータスコードが404 Not Foundのページを、301 Moved Permanentlyでトップページにリダイレクトをかける方法は、下記のようにmod_rewriteを使えば簡単にできるのだけど、CakePHPの場合はwebrootディレクトリ直下の.htaccessで、同様のことをindex.phpにパラメータを渡して、例のURLを実現しているので使えない。
シンプルなやり方
RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d RewriteRule ^(.*)$ / [R=301,L]
CakePHP用
appディレクトリ直下に error.php を作成し、404の時にheader()で301リダイレクトをかけるだけ。
class AppError extends ErrorHandler { function error404() { header("HTTP/1.1 301 Moved Permanently"); header("Location: http://www.example.com/"); } }
本当は、素直に404 Not Found専用のページを作るのが良いんだけど、案件によって必要だったので。