На самом деле не происходит связи между Apache и WordPress. «Волшебство» происходит в mod_rewriteправилах Apache .
Для стандартной установки WordPress у вас есть следующие правила .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
Обратите внимание на эту строку: RewriteRule . /index.php [L]
здесь мы говорим Apache о внутреннем перенаправлении любого URL-запроса /index.php.
Если: эта строка:RewriteCond %{REQUEST_FILENAME} !-fстановится ложной. Это означает, что, добавив этоRewriteCondк вышесказанномуRewriteRule, мы сообщаем Apache отправлять все запросы/index.php, но не в том случае, если это существующий файл .
Также, когда эта строка:RewriteCond %{REQUEST_FILENAME} !-dстановится ложной. Это означает, что, добавив этоRewriteCondк вышесказанномуRewriteRule, мы сообщаем Apache отправлять все запросы/index.php, но не в том случае, если это существующий каталог .
Итак, в конце концов, если это не существующий файл или существующий каталог, Apache внутренне отправляет все остальные запросы /index.php.
Итак, как вы видите, между Apache и WordPress не происходит никакой связи. Apache решает сам все и мы говорим это , чтобы сделать это , используя RewriteRuleи RewriteCondдирективы.
Подробнее о mod_rewriteЗДЕСЬ .