Isso provavelmente funcionará:
RewriteEngine On
RewriteRule /blog/(.*) %{HTTP_HOST}/blog/newpost.php?$1 [L]
Sua regex começa com ^blog...
. Isso nunca corresponderá ao que você está enviando, como o inicial / está faltando. A expressão regular que você diz corresponde a um URL que começa com blog/...
, mas, na realidade, há sempre uma barra após o nome do host: port.
Consulte a documentação para RewriteRule : especificamente:
The Pattern will initially be matched against the part of the URL after the hostname and port, and before the query string (e.g. "/app1/index.html").
Meu exemplo é mais genérico; Se você precisar que seja para um caminho muito específico, como você fez, então mude de volta e substitua o (.*)
grouping e $1
pelo que você tinha.