ちょっとした自分用メモレベルで失礼。
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専用のページを作るのが良いんだけど、案件によって必要だったので。