Problema htaccess en Silex

Hola a todos, tengo un proyecto silex que me funciona perfectamente. En la raíz del proyecto tengo el siguiente htaccess:


    Options -MultiViews
    RewriteEngine On
    RewriteBase /public/
    RewriteCond %{REQUEST_FILENAME} !-f

RewriteRule ^$ public/
RewriteCond %{REQUEST_FILENAME} !-f 
RewriteCond %{REQUEST_FILENAME} !-d 
RewriteRule ^(.*)$ public/$1

Y dentro de la carpeta public tengo el siguiente htaccess:


    Options -MultiViews
    RewriteEngine On
    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteRule ^ index.php [QSA,L]

Como digo me funciona perfectamente todo y al entrar en mi dominio www.midominio.com se carga todo bien lo de la carpeta public y va de maravilla.

El problema es que el cliente de la web me ha dicho que si escribe directamente en el servidor:

www.midominio.com/public

Carga también perfectamente toda la web pero, claro, ya a partir de ese momento cualquier sitio que se mueva por la web sale con public, por ejemplo:

www.midominio.com/public/contactar
www.midominio.com/public/quienes-somos
www.midominio.com/public/aviso-legal

Le he intentado convencer que es absurdo, que nadie va a escribir adrede www.midominio.com/public pero él está emperrado que hay que hacer que cuando se escriba así no aparezca en la url la palabra public. He intentado hacerlo de mil maneras cambiando el htaccess con el redirect pero nada, no consigo que me funcione. ¿Cómo puede hacer a partir de los htaccess de mi silex que si un usuario escribe eso no salga ya siempre public en todas las urls que vaya entrando?

Muchas gracias