Momentan findet keine Kommunikation zwischen Apache und WordPress statt. Die "Magie" geschieht in Apache- mod_rewrite
Regeln.
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} !-f
wird falsch. Das heißt, mitHinzufügen diesesRewriteCond
mit 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} !-d
false wird. Das heißt, mitHinzufügen diesesRewriteCond
mit 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 RewriteRule
und RewriteCond
Anweisungen zu tun .
Lesen Sie mehr über mod_rewrite
HIER .
if ( !defined(‘ABSPATH’)) exit;
!defined(‘ABSPATH’)
der Wert true ist, bedeutet dies, dass WordPress versucht, auf das Skript zuzugreifen (da ABSPATH in der Datei wp-config.php definiert ist). Daher sollte es diese Anforderung ignorieren. Ist das korrekt?ABSPATH
in jedem anderen PHP-Skript definieren können, werden andere Skripte auf Ihrem eigenen Server zugelassen. Was es nicht zulässt, ist der direkte Zugriff auf diese Datei von außerhalb Ihres Servers (etwa vom Browser). Denn durch den direkten Zugriff auf diese Datei können Benutzer in keiner Weise definierenABSPATH
.