mod_rewrite para todas as páginas (incluindo subpastas) em um site em uma única página php

Estou no processo de converter meu site com muitas páginas estáticas de html em um site conduzido por um banco de dados. Meu problema é que eu não quero perder o que o google já indexou, então gostaria de reescrever solicitações para serem enviadas por meio de um script php que procure no caminho do arquivo o conteúdo do banco de dados. Meu entendimento é que um mod_rewrite serviria melhor a esse propósito, infelizmente nunca o usei, por isso estou um pouco perdido.

O que eu tenho:

www.domain.com/index.html
www.domain.com/page.html?var=123&flag=true
www.domain.com/folder/subfolder/
www.domain.com/folder/subfolder/index.html
www.domain.com/folder/subfolder/new/test.html
www.domain.com/folder/subfolder/new/test.html?var=123&flag=true

O que eu quero (provavelmente também preciso urlencode o caminho) (passar a uri completa também está ok):

www.domain.com/index.php?page=/index.html OR www.domain.com/index.php?page=www.domain.com/index.html
www.domain.com/index.php?page=/page.html?var=123&flag=true
www.domain.com/index.php?page=/folder/subfolder/
www.domain.com/index.php?page=/folder/subfolder/index.html
www.domain.com/index.php?page=/folder/subfolder/new/test.html
www.domain.com/index.php?page=/folder/subfolder/new/test.html?var=123&flag=true

Aqui está minha primeira tentativa:

RewriteEngine On  # Turn on rewriting    
RewriteCond %{REQUEST_URI} .* # Do I even need this?    
^(.*)$ /index.php?page=$1

Idéias? Desde já, obrigado :)

Editar:

Então, tentei implementar a solução de Ragnar, mas continuava recebendo 500 erros ao usar 'RewriteCond $ 1' ou incluir o '/' na última linha. Eu configurei um arquivo test.php que ecoará GET _ ["page"], então eu sei que a reescrita está funcionando corretamente. Até agora, posso obter parte da saída correta (mas apenas quando não estou no root), por exemplo:

RewriteEngine on
RewriteRule ^page/(.*)$ test.php?page=$1 [L]

Se eu visitar a páginahttp://www.domain.com/page/test/subdirectory/page.html?var=123 ele produzirá 'test / subdiretório / page.html' (faltando a string de consulta, que eu preciso). No entanto, se eu usar este exemplo:

RewriteEngine on
RewriteRule ^(.*)$ test.php?page=$1 [L]

Se eu visitarhttp://www.domain.com/page/test/subdirectory/page.html?var=123 ele produzirá apenas 'test.php', o que é completamente confuso. Pensamentos?

Edição # 2:

Parece que eu estive fazendo tudo errado. Eu só queria a capacidade de usar uri completo na minha página de script php. A solução final de trabalho para fazer o que eu quero é o seguinte:

Options +FollowSymlinks
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /test.php

Então, no meu script php, eu posso usar $ _SERVER ['REQUEST_URI'] para obter o que eu preciso. Eu sabia que isso deveria ter sido mais fácil do que aquilo que eu estava tentando ...

questionAnswers(2)

yourAnswerToTheQuestion