Я почти уверен, что вы просто забыли сообщить apache, что ему нужно "default" для index.php, если в URL ничего не указано точно.Вот как вы это делаете:
<IfModule dir_module>
DirectoryIndex index.html index.php
</IfModule>
Другой ответ о 404
У меня была такая же проблема несколько дней назад.Все просто: назначьте документ об ошибке 404.php.Всякий раз, когда есть 404, сервер делает внутреннее перенаправление, чтобы он мог правильно обработать веб-страницу.
Итак, вот пример моей конфигурации vhost:
<VirtualHost *>
ServerName x.fr
...
ErrorDocument 404 /404.php
# activate rewrite engine:
RewriteEngine On
# *IMMEDIATELY* treat 404
# if 404.php then stop immediately
RewriteRule /404.php - [QSA,L]
# From now on your can apply all your rules:
...
...
...
# Sample of how I do a 404:
RewriteCond %{ENV:PATH_LOCAL} notfound
# "not found" 404 :
RewriteRule .* - [R=404,L]
</VirtualHost>
Со всем, что вам нужнобыть в состоянии создавать свои собственные программы перезаписи с надлежащей «фильтрацией» 404.
Надеюсь, это поможет!