То что он показывал и так было в индексе.
Зачем если там голый html?
да перед вами. Возьмите наконец уже и прочитайте топик.
Ага, а зачем тогда вообще что-то делать? Вы уже засветили ТСу один дубль.
Ну тогда добавьте в самом начале файла
<?php
header("HTTP/".$_SERVER['SERVER_PROTOCOL']." 404 Not Found");
?>
Юзать второй вариант.
R=404 удалите.
И под такой вариант есть решение выше.
поставьте 404.html, как у вас там на сервере называется файл?
Но ваша страничка по прежнему отдает код 200. попробуйте [L] заменить на [L,R=404]
А вообще если сайт на голом html и там вообще не используются параметры
RewriteEngine On
RewriteCond %{QUERY_STRING} .
RewriteRule ^ 404.html [L,R=404]
Pioneer, вы читать умеете? Вам же говорят, что не будет работать, потому что параметры не являются "несуществующей страницы", их нужно обрабатывать отдельно.
phpBB уже советовали?
%{REQUEST_FILENAME}
Update
И конечно не будет идти, там же выполняется реально существующий файл index.php, а за параметры mod_rewrite не отвечает. Кроме всего прочего, ваша "несуществующая страница" отдает код 200.
Update2
судя по всему что страницы с "page_id" вообще не существуют, можно написать реврайт для них (добавить после RewriteEngine On)
RewriteCond %{QUERY_STRING} ^page_id=
RewriteCond %{ENV:REDIRECT_STATUS} ^$
RewriteRule ^$ 404.php [L]
404.html переименовать в 404.php и добавить header 404.