Você está pensando inversamente: você reescreve a URL de entrada para corresponder ao seu sistema de arquivos.
Você quer reescrever www.example.com/blog/custom-post-title/
para www.example.com/?p=X
Para todas as suas páginas, vá de específico para genérico.
#Specifics
RewriteRule ^results/$ /?page_id=10 [L]
RewriteRule ^bloggers/$ /?page_id=4 [L]
RewriteRule ^about/$ /?page_id=2 [L]
#Blogger names
RewriteRule ^bloggers/(.+)$ /?author=$1 [L] #is there really no s to blogger here??
#Other articles
RewriteRule ^(.+)$ /?$1 [L]
Eu tenho uma pequena dúvida sobre a última regra, já que você não usa nome de arquivo para redirecionamento (reescreva on /) ele pode fazer um novo pedido para index.php?<thequerystring>
, então teríamos que excluir index.php da última reescrita para evitar loops infinitos:
RewriteRule ^index.php$ - [L]
Pode ser adicionado na frente de todos os outros.