特定のページにリダイレクトしたり、他のルールが満たされていない場合に 404 をスローしたりするにはどうmod_rewrite
すればよいですか? これが私の.htaccess
ファイルにあるものです:
RewriteEngine on
RewriteRule ^\. / [F,QSA,L]
RewriteRule ^3rdparty(/.*)$ / [F,QSA,L]
RewriteCond %{REQUEST_FILENAME} -f
RewriteRule ^((images|upload)/.+|style.css)$ $1 [L]
RewriteRule ^$ special [QSA]
RewriteRule ^(special|ready|building|feedback)/?$ $1.php [QSA,L]
RewriteRule ^(ready|building)/(\d+)/?$ show_property.php?type=$1&property_id=$2 [QSA,L]
RewriteRule . error.php?code=404 [QSA,L]
これは、とりわけ、ユーザーがerror.php
ここで明示的に指定されていないものにアクセスしようとした場合に送信することになっています (ちなみに、404 をスローする適切な方法は何ですか?)。ただし、代わりに、すべてのページから にユーザーを送信しますerror.php
。最後のルールを削除すると、他のすべてが機能します。
私は何を間違っていますか?