Насколько я могу предположить, объяснение этой проблемы такое:
1. У вас включена система ЧПУ (Человеко-Понятный Урл) что это такое, смотрите в доках и в этой конфе.
2. Страницы генерятся на лету, т.е. их как-бы на самом деле нету, инфа вытаскивается из базы по запросу.
Таким образом если страница не существует а пользователь, запрашивает ее, естественно, что веб-сервер генерирует ошибку 404. Вот тут-то и вступает в силу файл .htaccess в котором содержаться инструкции для веб-сервера, что делать в случае ошибки 404.
Файл должен выглядеть примерно так:
ErrorDocument 404 /missing.php
ErrorDocument 401 /missing.php
ErrorDocument 403 /missing.php
Эти строки приказывают веб-серверу при возникновении указанных ошибок показывать файл missing.php, который в свою очередь является скриптом.
Этот скрипт выцепляет из строки запроса название страницы, сраздела которую пытается открыть пользователь и формирует запрос к базе, после чего полученная информация выводиться как результат работы скрипта.
Таким образом, необходимо корректно настроить файл .htaccess и все заработает.
Можете убедиться на
http://www.fpkk.ru Я сам через все это прошел
)
З.Ы. Если я не прав в своих суждениях - поправьте меня...