Vamos lá.. é bem confuso!
Tenho um arquivo .htaccess na pasta raiz do meu site.
com a seguinte regra:
RewriteRule ^([^/]+)\.html$ index.php?pagina=$1
Esta regra está funcionando perfeitamente, quando acesso: http://www.meusite.c...uer_pagina.html ele redireciona para: index.php?pagina=qualquer_pagina
com essa regra, se eu acessar: http://www.meusite.com.br/ vai para index com o parametro vazio, eu trato isso e blz.. está funcionando como eu quero.
Agora preciso de um parâmetro opcional, preciso que: se o usuário digitar: http://www.meusite.c.../qualquercoisa/ (com ou sem a barra no final) ele redirecione para: index.php?membro=qualquercoisa.
E se o usuário digitar: www.meusite.com.br/qualquercoisa/umapagina.html ele redirecione para: index.php?membro=qualquercoisa&pagina=umapagina
Tentei utiliza a seguinte regra:
RewriteRule ^(([^/]+))?(/([^/]+)\.html)?$ index.php?membro=$1&pagina=$2
Ou seja, o primeiro e o segundo parâmetros são opcionais.
quando tento acessar a url: http://localhost/primeiro/segundo.html
e na index fiz um debug: print_r($_GET) ou seja, imprimo tudo que veio de parâmetro.
O resultado do debug é:
Array ( [membro] => index.php [pagina] => index.php )
Ou seja, está ignorando os 2 parâmetros passados, o resultado correto deveria ser:
Array ( [membro] => primeiro [pagina] => segundo )
Se eu acesso: http://localhost/primeiro
o resultado do debug é:
Array ( [membro] => index.php [pagina] => index.php )
e se eu acesso: http://localhost/primeiro/
Dá página não encontrada.
Resumindo tudo, preciso que:
Ao acessar a página: http://localhost/primeiro redirecione para: http://localhost/ind...membro=primeiro
Ao acessar a página: http://localhost/primeiro/ redirecione para: http://localhost/ind...membro=primeiro
Ao acessar a página: http://localhost/primeiro/segundo.html redirecione para: http://localhost/ind...;pagina=segundo
Ao acessar a página: http://localhost/segundo.html redirecione para: http://localhost/ind...&pagina=segundo
Deu pra entender a confusão?
Procurei muito mas não consegui fazer funcionar

Obrigado pela ajuda.
Resolvi o problema criando três regras.
#Primeira: Caso a URL seja: http://localhost/mysite/anything ou http://localhost/mysite/anything/ RewriteRule ^([^/.]+)/?$ index.php?membro=$1 #Segunda: Caso a URL seja: http://localhost/mysite/page.html RewriteRule ^([^/]+)\.html$ index.php?pagina=$1 #Terceira: Caso a Url seja: http://localhost/mysite/anything/page.html RewriteRule ^([^/.]+)/([^/]+)\.html$ index.php?membro=$1&pagina=$2
A única coisa que mudou da regra que eu mesmo tinha criado e informado na criação do tópico, é que no caso da primeira e terceira regra, no parâmetro $1 tem um ponto depois da barra.
O que este ponto modifica na regra? Sem o ponto, era passado o nome da página como parâmetro (membro=index.php) agora, quando coloco o ponto, os parâmetros são passados corretamente. Coloquei o ponto somente na Primeira Regra, e no primeiro parâmetro da Terceira regra.
Gostaria de saber o que mudou, qual é o efeito do "." na regra apenas para aprender melhor.
Obrigado pela Ajuda, e fica ai o tópico para que mais alguém possa ser ajudado.