Originariamente inviato da RoTeam
Bah, il codice funziona perfettamente, se vuoi settarlo alla home ti basta
fare cosi tipo ErrorDocument 404 http://www.tuosito.com/ , ti risulta qualche problema?
Che passaggi hai fatto?
Ho trovato il problema, nel File htaccess avevo già altre stringhe, le ho eliminate lasciando solo ErrorDocument 404 [...] e funziona.

Htaccess:
codice:
#Possiamo scrivere l'URL anche senza l'esetensione .php
RewriteEngine On
RewriteBase /
RewriteRule ^()$ index.php [NC,L]
Rewritecond %{REQUEST_URI} !(^/?.*\..*$) [NC]
RewriteRule (.*)$ $1.php [NC]

#Tutte le pagine conterranno il www cosi da far funzionare le Sessioni
RewriteCond %{HTTP_HOST} ^sito\.net [NC]
RewriteRule (.*) http://www.sito.net/$1 [R=301,L]

#Togliamo di default e definitivamente la lettura nell'URL della index.php
RewriteEngine On
RewriteBase /
RewriteCond %{THE_REQUEST} ^GET.*index\.php [NC]
RewriteCond %{THE_REQUEST} !/system/.*
RewriteRule (.*?)index\.php/*(.*) /$1$2 [R=301,L]
RewriteCond $1 !\.(css|js|gif|jpe?g|png) [NC]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ /index.php/$1 [L]

#Errore 404
ErrorDocument 404 http://www.sito.net/login.php

# -----
Options -MultiViews
RewriteEngine On
RewriteCond %{SCRIPT_FILENAME} -d [OR]
RewriteCond %{SCRIPT_FILENAME} -f
RewriteRule .* - [L]
RewriteCond %{REQUEST_URI} !cartella
RewriteRule ^([^/]*)$ cartella/$1 

# -----
RewriteEngine on
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME}\.php -f
RewriteRule ^(.*)$ $1.php