Momentan findet keine Kommunikation zwischen Apache und WordPress statt. Die "Magie" geschieht in Apache- mod_rewriteRegeln.
Für eine Standard-WordPress-Installation gelten folgende Regeln .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
Beachten Sie diese Zeile: RewriteRule . /index.php [L]
Hier weisen wir Apache an, URL-Anfragen intern an umzuleiten /index.php.
Es sei denn, diese ZeileRewriteCond %{REQUEST_FILENAME} !-fwird falsch. Das heißt, mitHinzufügen diesesRewriteCondmit der obenRewriteRule, wir sagen Apache alle Anfragen zu senden/index.php, aber nicht , wenn es eine vorhandene Datei ist .
Auch wenn diese Zeile:RewriteCond %{REQUEST_FILENAME} !-dfalse wird. Das heißt, mitHinzufügen diesesRewriteCondmit dem obenRewriteRule, wir sagen Apache alle Anfragen zu senden/index.php, aber nicht , wenn es sich um ein bestehendes Verzeichnis ist .
Letztendlich sendet Apache alle anderen Anfragen intern an, es sei denn, es handelt sich um eine vorhandene Datei oder ein vorhandenes Verzeichnis /index.php.
Wie Sie sehen, findet keine Kommunikation zwischen Apache und WordPress statt. Apache entscheidet alles selbst und wir weisen es an, dies mit RewriteRuleund RewriteCondAnweisungen zu tun .
Lesen Sie mehr über mod_rewriteHIER .