Попробуйте добавить RewriteBase /
и удалить ./
из вашего index.php
. В случае, если mod_rewrite недоступен, перенаправление 404 должно сработать, хотя я не уверен, насколько надежным будет ваше приложение, если вы в конечном итоге будете его использовать (мне никогда не приходилось использовать этот метод самостоятельно).
DirectoryIndex index.php
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ index.php?/$1 [L]
</IfModule>
<IfModule !mod_rewrite.c>
ErrorDocument 404 /index.php
</IfModule>
Кроме того, ваш первый RewriteCond
не кажется необходимым просто потому, что правила 2 и 3 заботятся о том, чего он пытается достичь.