Na verdade, não há comunicação entre o Apache e o WordPress. A "mágica" está acontecendo nas mod_rewriteregras do Apache .
Para uma instalação padrão do WordPress, você tem as seguintes regras em .htaccess:
# BEGIN WordPress
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
</IfModule>
# END WordPress
Observe esta linha: RewriteRule . /index.php [L]
Aqui, estamos dizendo ao Apache para redirecionar internamente qualquer solicitação de URL para /index.php.
A menos que: esta linha:RewriteCond %{REQUEST_FILENAME} !-fse torne falsa. Isso significa que, ao adicionar issoRewriteCondcom o exposto acimaRewriteRule, estamos dizendo ao Apache para enviar todas as solicitações/index.php, mas não se for um arquivo existente .
Além disso, quando esta linha:RewriteCond %{REQUEST_FILENAME} !-dse tornar falsa. Isso significa que, ao adicionar issoRewriteCondcom o exposto acimaRewriteRule, estamos dizendo ao Apache para enviar todas as solicitações/index.php, mas não se for um diretório existente .
Portanto, no final, a menos que seja um arquivo ou diretório existente, o Apache está enviando internamente todas as outras solicitações para /index.php.
Então, como você vê, nenhuma comunicação está acontecendo entre o Apache e o WordPress. O Apache está decidindo tudo sozinho e estamos dizendo para fazer isso usando RewriteRulee RewriteConddiretivas.
Leia mais sobre mod_rewriteAQUI .