PHP Script wird fälschicherweise mehrmals im Hintergrund aufgerufen

Hallo zusammen,

um mein Problem zu verstehen ist es evtl. notwendig meine Architektur zu kennen. Deswegen hier eine kurze Erläuterung.
Ich will meine API über eine URL-Struktur laufen lassen, bei der man keine Felder mitgeben muss.
Beispiel:
…/api/apikey/controller/method/arg1/arg2 …

Dafür benötige ich ja theoretisch für deses weitere „/“ einen existierenden Ordner. Also dachte ich mir, dass ich eine virtuelle Ordner-Struktur aufbaue. Wenn man die API aufruft, wird der Server den Ordner nicht finden, sodass es zu einem 404 kommt. Im 404 Document wird anschließend geprüft ob es ein API-Aufruf ist. Wenn ja, dann wird die API-Klasse instantiiert und dynamisch die Methode aufgerufen, die sich aus /controller/ und /method/ zusammensetzt.
Darüberhinaus wird ein neuer Header( 200 OK ) gesendet, damit der Client keine 404 Meldung bekommt.

Auf meiner Seite rufe ich selbst meine API auf. Die geschieht z.B. bei AJAX-Calls. Dabei wird allerdings nicht direkt die API angesprochen sondern ein API-Proxy, welcher meinen API-Key mit dranhängt.
Um den ganzen Prozess zu veranschaulichen hier eine kleine Grafik:

Logout Button > AJAX Funktion > API-Proxy > virtuelle API URL > 404 Dokument > Tatsächliches API-Objekt

Das Ganze funktioniert auch wunderbar auf meinem lokalen XAMPP. Als ich es aber auf meinen bplaced Webspace hochgeladen habe entsteht ein merkwürdiges verhalten.
Bei jedem API-Aufruf logge ich diesen. Über bplaced sind nach oben aufgeführten Beispiel 9 Datensätze (API-Calls) in der Datenbank.
Rufe ich direkt die API auf - also ab virtuelle API URL - habe ich 3 Datensätze in der Datenbank.

Ich habe mir für jeden Datensatz $_SERVER und Header-Daten ausgeben lassen.

Header:

{„X-Ud-Loopcount“:„0“,„User-Agent“:„www.bplaced.net“,„Connection“:„close“,„Accept“:"/",„Host“:„janseidel.bplaced.net“}

Dabei geht der Loopcount immer von 0 - 2. Also sieht der Loopcount bei 9 Datensätzen wie folgt aus: 0 1 2 0 1 2 0 1 2.
Man könnte also sagen es wird in 3 Segmente geteilt, jeweils 0 1 2.

Die Server-Daten sehen alle sehr identisch aus. Im Folgenden Loopcount 0 - 2:

„REQUEST_METHOD“:„HEAD“
„REQUEST_METHOD“:„GET“
„REQUEST_METHOD“:„HEAD“

Was vielleicht auch von Bedeutung sein kann ist

„REDIRECT_STATUS“:„200“,
„REDIRECT_HANDLER“:„application/x-httpd-php“,"
„REDIRECT_REDIRECT_STATUS“:„200“

Was mich auch irritiert ist, dass wenn ich in der API-Log-Methode ein echo einbaue, dann wird mir dieses nur 1 mal ausgegeben. So wie es hier läuft müsste es ja 9 bzw min. 3 mal aufgerufen werden.

Wie gesagt, passiert das alles nur auf dem bPlaced-Webspace. Lokal funktioniert alles super.

Hat jemand eine Ahnung woran es liegen kann, dass im Hintergrund das Script mehrmals ausgeführt wird? ich bin mit meinem Latein langsam am Ende und hoffe, dass ihr mir Hinweise geben könnt.

Vielen Dank schonmal im Voraus.

Mfg Jan

Nach langem hin und her, hat ein Kollege herausgefunden, dass es mal wieder an der Konfiguration meines vhosts lag. :rolling_eyes:

Mit einem A-Record funktioniert es jetzt.

Schön dass du eine Lösung zu deinem Problem gefunden hast, aber ich frage mich trotzdem wieso deine “Architektur” so unnötig kompliziert klingt, z.B. warum 404 dort überhaupt eine Rolle spielt.