PHP Fatal error Matomo und Webtrees

Hallo,
ich nutze auf angemietetem Webspace die Genelogie-Software Webtrees und habe als Unterverzeichnis Matomo lokal installiert. Ich erhalte für Webtrees eine Fehlermeldung:

 PHP Fatal error:  Uncaught Fisharebest\\Webtrees\\Http\\Exceptions\\HttpBadRequestException: Der Parameter \xe2\x80\x9eroute\xe2\x80\x9c fehlt. in /htdocs/webtrees/app/Validator.php:333: /htdocs/webtrees/index.php

Auslöser laut Log ist:
POST /webtrees/XXXX/matomo/?module=API&format=csv&convertToUnicode=0&method=CoreAdminHome.runScheduledTasks&trigger=archivephp HTTP/1.1

Der Webtrees-Autor schreibt mir dazu:
“I guess that this URL should be sent to your Matomo installation.
Instead, it is being sent to webtrees.
I guess that you need to check your webserver configuration.”

Habe ich bei der Installation etwas zu ändern?

Vielen Dank für einen Hinweis.

Es ist leider nur eine Vermutung, ich kenne Webtrees nicht, aber wenn Webtrees sprechende URLs verwendet, die per .htaccess auf z.B. eine index.php umgeleitet werden, dann wird auch der Matomo-Aufruf entsprechend verwurstet, sprich du erreichst dein Matomo gar nicht, sondern der Request wird durch die Anweisungen in der .htaccess direkt an Webtrees weitergereicht.

Um das zu ändern, musst du in der .htaccess eine Ausnahmeregel für den Matomo-Pfad in die entsprechende Rewrite-Regel hinzufügen. Wenn die .htaccess nicht zu umfangreich ist, kannst Du sie ja einmal hier posten, dann kann ich Dir mehr sagen. Ggf. vorhandene Hostnamen kannst Du ja durch Platzhalter ersetzen, solange am Platzhalter erkennbar ist, dass es ein Domainname ist. :slight_smile:

Danke für Dein Angebot.
Webtrees nutzt Pretty URL, deshalb existieren in der Tat Umleitungsregeln. Diese sehen so aus:

RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^(.*)$ index.php [L]

Volltreffer. Es gibt verschiedene Möglichkeiten, das zu korrigieren. Die einfachste wäre, Matomo auf eine Subdomain zu legen statt es auf der Hauptdomain anzusprechen. Damit hättest du eine saubere Trennung und keine potentiellen Probleme bei Updates. Alternativ kannst Du eine weitere RewriteCond hinzuzufügen, die nur triggert, wenn der Pfad nicht mit /matomo/ beginnt. Teste doch einmal folgendes, ich nehme an, Webtrees liegt in / und Matomo in /matomo/, richtig?

RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_URI} !^/matomo/.*$ [NC]
RewriteRule ^(.*)$ index.php [L]

Ich bin so noch nicht erfolgreich, habe aber jetzt gelesen, dass die Ausnahmeregel nach oben an die 2. Stelle gehört, insofern weiterer Versuch.

Die Reihenfolge sollte nicht das Problem sein. Was mir aber wieder entfallen war, ist dass der Match für Matomo vermutlich so lauten muss:

RewriteCond %{REQUEST_URI} !^matomo/.*$ [NC]

Bitte mal testen. :slight_smile:

Danke.
Matomo liegt in /webtrees/analytics/matomo, reicht dann der Eintrag von matomo?

Schau mal nach ob dein Server (d)eine PHP version abgestellt hat.