A: 

You redirect anything starting with admin/ to public/admin/ first and then everything to public/whatever. So when you request /admin/, it's trying to give you /public/public/admin/, which doesn't exist, so you get a 404.

Try removing the line RewriteRule ^admin/(.*) public/admin/$1. It's already handled by the next line, and you don't want to do it twice.

qmega
Yes, but while that is true, it wasnt the cause. Answered by self.
Janis Peisenieks
A: 
Janis Peisenieks