Based on NZ_kiwis posts, it's really hard to tell what is not working, but I think it has something to do with his code being in a subdirectory rather than the base of his web root. For him to understand what the problem is, it will be necessary for some focus and probably some trial and error.
On my workstation, the web root is /var/www/html. I create the contents of /var/www/html/.htaccess like so:
# route all requests to index.php so we can see what sort of match we're looking at
RewriteEngine on
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond $1 !^(index\.php|images|css|js|robots\.txt)
RewriteRule ^(.*)$ index.php/$1 [L]
And the file /var/www/html/index.php looks like this:
<?php
echo "this is " . __FILE__ . "</br>";
echo "<pre>";
echo $_SERVER["PATH_INFO"] . "</br>";
echo $_SERVER["PATH_TRANSLATED"] . "</br>";
echo $_SERVER["PHP_SELF"] . "</br>";
echo "</pre>";
If I I use my browser to visit http://localhost/some/path/info, then this is the output I see in my browser:
this is /var/www/html/index.php
/some/path/info
redirect:/index.php/some/path/info/path/info
/index.php/some/path/info
Note how the entire path (/some/path/info) follows index.php in that last line. The $1 from my rewrite rule includes the entire path part of the url.
Now if I create a new subdir, /var/www/html/subdir, and I copy both index.php and .htaccess to that subdir:
cd /var/www/html
mkdir subdir
cp index.php subdir/index.php
cp .htaccess subdir/.htaccess
And then I visit this slightly different url - http://localhost.com/subdir/some/path/info - then you should see that the request is being handled by subdir/index.php and that (EDIT) PHP_SELF changes a little but PATH_INFO and PATH_TRANSLATED don't:
this is /var/www/html/subdir/index.php
/some/path/info
redirect:/index.php/some/path/info/path/info
/subdir/index.php/some/path/info
More precisely, the $1 from my rewrite rule lacks the "subdir" part of the path. I'm not sure how to verbally describe this behavior of mod_rewrite and apache beyond saying that an .htaccess file's RewriteRule directive doesn't see the entire path when you put it in a subdirectory of the web root. Apache peels off the partial path that has resulted in the request being routed to the directory where this .htaccess file lives so the RewriteRule only sees the leftover part of the path.
Not really sure how to explain it beyond that. Subdirectories matter. Mod_rewrite is tricky. NZ_kiwis needs to be more specific about precisely where his files exist if he wants any helpful assistance. "subdir" gets shaved off from $1 when handled by the .htaccess file in the subdir directory.