Moodle/Router: Unterschied zwischen den Versionen
Keine Bearbeitungszusammenfassung |
|||
| (Eine dazwischenliegende Version desselben Benutzers wird nicht angezeigt) | |||
| Zeile 1: | Zeile 1: | ||
'''Moodle/Router''' - Konfiguration des Routers | |||
== Beschreibung == | |||
Routing-Engine korrekt konfigurieren | |||
; Was ist ein Router? | |||
Moodle besteht aus Tausenden von Webseiten, die über Hyperlinks miteinander verknüpft sind. Da HTML eher eine statische Auszeichnungssprache als eine Programmiersprache ist, kann es Variablen oder Links nicht eigenständig dynamisch verarbeiten. | Moodle besteht aus Tausenden von Webseiten, die über Hyperlinks miteinander verknüpft sind. Da HTML eher eine statische Auszeichnungssprache als eine Programmiersprache ist, kann es Variablen oder Links nicht eigenständig dynamisch verarbeiten. | ||
| Zeile 32: | Zeile 12: | ||
Obwohl die Routing-Architektur schrittweise über mehrere Moodle-Versionen hinweg eingeführt wurde, wurden formale Umgebungsprüfungen und Konfigurationswarnungen erst in Moodle 5.2 ausdrücklich eingeführt. Zwar ist eine funktionierende Router-Konfiguration für den Abschluss einer Basisinstallation in Moodle 5.2 nicht zwingend erforderlich, doch beabsichtigt Moodle HQ, einen voll funktionsfähigen Router in kommenden stabilen Versionen zur Pflicht zu machen. Eine frühzeitige Konfiguration gewährleistet langfristige Stabilität der Website und reibungslose zukünftige Upgrades. | Obwohl die Routing-Architektur schrittweise über mehrere Moodle-Versionen hinweg eingeführt wurde, wurden formale Umgebungsprüfungen und Konfigurationswarnungen erst in Moodle 5.2 ausdrücklich eingeführt. Zwar ist eine funktionierende Router-Konfiguration für den Abschluss einer Basisinstallation in Moodle 5.2 nicht zwingend erforderlich, doch beabsichtigt Moodle HQ, einen voll funktionsfähigen Router in kommenden stabilen Versionen zur Pflicht zu machen. Eine frühzeitige Konfiguration gewährleistet langfristige Stabilität der Website und reibungslose zukünftige Upgrades. | ||
Warum muss man den Router konfigurieren? | ; Warum muss man den Router konfigurieren? | ||
Zwar enthält Moodle standardmäßig den Router-Code, doch stützt sich der Router vollständig auf die in Ihrem zugrunde liegenden Webserver integrierten Funktionen für URL-Umschreibung und Routing. Er ist nicht Teil des Moodle-Codes. | Zwar enthält Moodle standardmäßig den Router-Code, doch stützt sich der Router vollständig auf die in Ihrem zugrunde liegenden Webserver integrierten Funktionen für URL-Umschreibung und Routing. Er ist nicht Teil des Moodle-Codes. | ||
Aktuelle Version vom 7. November 2026, 14:17 Uhr
Moodle/Router - Konfiguration des Routers
Beschreibung
Routing-Engine korrekt konfigurieren
- Was ist ein Router?
Moodle besteht aus Tausenden von Webseiten, die über Hyperlinks miteinander verknüpft sind. Da HTML eher eine statische Auszeichnungssprache als eine Programmiersprache ist, kann es Variablen oder Links nicht eigenständig dynamisch verarbeiten.
PHP ist die serverseitige Programmiersprache, auf der Moodle basiert. PHP verwendet zwar intern Datenvariablen, doch herkömmliches PHP stützt sich auf unübersichtliche „Query-Strings“ (wie ?id=123), die an das Ende von Weblinks angehängt werden, um Informationen zwischen Seiten weiterzugeben.
Hier kommt ein Router ins Spiel. Ein Router ist eine Softwarefunktion, die als zentrale Verkehrssteuerung für die Webanfragen von Moodle dient. Anstatt starre, direkte Pfade zu Tausenden einzelner PHP-Dateien fest zu programmieren, werden alle Hyperlinks über diesen zentralen Router geleitet. Wenn ein Entwickler den Dateinamen oder den Speicherort einer Webseite ändert, muss er lediglich eine einzige „Route“-Regel im Router-Skript aktualisieren, anstatt Tausende von Code-Dateien durchforsten zu müssen, um defekte Links zu beheben. Diese zentrale Steuerung verbessert die Produktivität und Qualität der Programmierung erheblich und sorgt gleichzeitig für saubere, für Menschen lesbare URLs.
Obwohl die Routing-Architektur schrittweise über mehrere Moodle-Versionen hinweg eingeführt wurde, wurden formale Umgebungsprüfungen und Konfigurationswarnungen erst in Moodle 5.2 ausdrücklich eingeführt. Zwar ist eine funktionierende Router-Konfiguration für den Abschluss einer Basisinstallation in Moodle 5.2 nicht zwingend erforderlich, doch beabsichtigt Moodle HQ, einen voll funktionsfähigen Router in kommenden stabilen Versionen zur Pflicht zu machen. Eine frühzeitige Konfiguration gewährleistet langfristige Stabilität der Website und reibungslose zukünftige Upgrades.
- Warum muss man den Router konfigurieren?
Zwar enthält Moodle standardmäßig den Router-Code, doch stützt sich der Router vollständig auf die in Ihrem zugrunde liegenden Webserver integrierten Funktionen für URL-Umschreibung und Routing. Er ist nicht Teil des Moodle-Codes.
Bei einigen Webservern sind diese Funktionen standardmäßig aktiviert, bei anderen hingegen nicht. Da jede Serverumgebung einzigartig ist, müssen Sie je nachdem, ob Sie Apache, Nginx oder eine andere Plattform verwenden, unterschiedliche technische Maßnahmen ergreifen. Es gibt keine einheitliche Lösung, die für alle gleichermaßen geeignet ist.
Da Moodle Ihre Serverhardware jedoch nicht automatisch konfigurieren kann, sind Sie letztendlich dafür verantwortlich, sicherzustellen, dass die Router-Umgebung Ihres Servers ordnungsgemäß konfiguriert ist und funktioniert. Befolgen Sie dazu die folgenden Schritte.
Schritt 1: Überprüfen Sie, ob die Router-Dateien vorhanden sind
Moodle hat die Kern-Routing-Architektur in Moodle 5.1 eingeführt und in Moodle 5.2.0 vollständig stabilisiert. Wenn Sie Moodle 5.2 oder eine neuere Version verwenden, ist das erforderliche Framework bereits in Ihrem Quellcode enthalten.
Um zu überprüfen, ob die Router-Endpunkte physisch auf Ihrem System vorhanden sind, sehen Sie in Ihrem Moodle-Hauptverzeichnis nach. Dort sollten Sie ein Unterverzeichnis „public/“ mit zwei wichtigen Dateien finden: * index.php – Stellt Ihre Standard-Assets und Einstiegspunkte bereit
- r.php – Die zentrale Engine, die virtuelle URL-Pfade abfängt und weiterleitet
Schritt 2: Den Moodle-Router testen
Die Umweltwarnung verstehen
Wenn Sie zu „Site-Administration“ > „Server“ > „Umgebung“ navigieren, wird im Abschnitt „Sonstige Prüfungen“ möglicherweise die Meldung Router nicht konfiguriert angezeigt.
Im Gegensatz zu anderen Umgebungstests (wie Datenbank- oder PHP-Versionsprüfungen) kann Moodle Ihren Webserver nicht aktiv überprüfen, um festzustellen, ob der Router funktioniert. Diese Benachrichtigung ist eine statische Statusmeldung und kein Echtzeit-Fehler-Tracker. Sie können die Warnung zwar unterdrücken, indem Sie $CFG->routerconfigured = true; in Ihre config.php-Datei einfügen, doch dadurch wird lediglich die Warnung ausgeblendet – Ihr Server wird dadurch nicht tatsächlich konfiguriert.
So testen Sie Ihren Router
Bevor Sie Änderungen am Servercode vornehmen, führen Sie einen dieser einfachen Tests durch, um sicherzustellen, dass Ihr Router ordnungsgemäß funktioniert:
Test A: Der 404-Verhaltenstest
Geben Sie einen nicht existierenden Pfad in Ihren Browser ein, zum Beispiel https://yourmoodle.com/fakefile.php (oder https://yourdomain.com/moodle/fakefile.php, falls sich Ihr Moodle in einem Ordner befindet).
Der Router funktioniert NICHT: Es wird eine allgemeine, leere oder vom Server voreingestellte „404 Not Found“-Seite angezeigt (oftmals einfacher Schwarz-Weiß-Text).
Der Router funktioniert: Es wird eine an das aktuelle grafische Design Ihrer Website angepasste Moodle-Fehlermeldung „Nicht gefunden“ angezeigt.
Test B: Der Deep-Link-Test
Melden Sie sich auf Ihrer Website an, rufen Sie einen beliebigen aktiven Kurs auf und notieren Sie sich dessen eindeutige Kurs-ID (z. B. 19). Geben Sie anschließend die folgende geroutete URL direkt in Ihre Adressleiste ein: https://yourmoodle.com/course/19/manage (oder https://yourdomain.com/moodle/course/19/manage, falls sich Ihr Moodle in einem Ordner befindet.)
Der Router funktioniert NICHT: Der Browser zeigt eine allgemeine Server-Seite mit der Meldung „Nicht gefunden“ an.
Der Router funktioniert: Der Browser zeigt Ihre Moodle-Seite „Kursverwaltung“ erfolgreich an. Dies veranschaulicht genau, wie der Router Seiten verarbeiten und bereitstellen soll.
Test C: Der Test zum Systemstatusbericht
Navigieren Sie in Ihrem Browser zu Site-Administration > Berichte > Systemstatus.
Wenn die Einstellung (das Flag) $CFG->routerconfigured = true; in Ihrer config.php-Datei fehlt oder wenn der Router nicht eingerichtet ist, zeigt Moodle einen Router-Konfigurationsfehler mit der Meldung „Der Router ist nicht korrekt konfiguriert.“ an.
Wenn Sie auf den Link Router-Konfiguration klicken, wird eine detaillierte Statusseite geöffnet. Die angezeigten Informationen hängen von Ihren Einstellungen ab: * Fehlendes „config.php“-Flag: Es werden keine weiteren Informationen angezeigt.
- Flag aktiviert, Router jedoch falsch konfiguriert: Auf der Seite werden spezifische Fehler zur Fehlerbehebung angezeigt.
- Flag aktiviert und Router korrekt konfiguriert: Auf der Seite wird eine Liste mit „OK“ angezeigt.
Test D: Der Befehlszeilentest
Wenn Sie lieber die Befehlszeile verwenden, können Sie dieselben Statusinformationen abrufen, indem Sie das CLI-Skript für Administratoren ausführen:
php admin/cli/checks.php
Halten Sie diese Tests griffbereit! Falls Ihre Website diese Tests derzeit nicht besteht, werden Sie dieselben Tests durchführen, um Ihre Einrichtung zu überprüfen, nachdem Sie die Serverkonfigurationen in den nächsten Schritten abgeschlossen haben.
Schritt 3: Konfigurieren Sie den Webserver
Moodle läuft auf einer Vielzahl von Hosting-Umgebungen, sodass die Serverkonfigurationen stark variieren. Die folgenden Beispiele sind allgemeine Richtlinien und müssen möglicherweise an Ihr spezifisches System angepasst werden. Wesentliche Unterschiede bestehen nicht nur zwischen Softwareplattformen wie Apache, Nginx und IIS, sondern auch zwischen Verwaltungstools wie cPanel und Plesk. Da es kein einheitliches Verfahren gibt, das für jede Umgebung gilt, kann die Konfiguration der Routing-Regeln des Servers eine Herausforderung darstellen und erfordert eine sorgfältige Berücksichtigung Ihrer individuellen Konfiguration.
Apache (Apache2) konfigurieren
Methode A: Über die Virtual-Host-Datei des Hauptservers (httpd.conf oder apache2.conf)
Diese Methode eignet sich ideal für Administratoren, die ihren eigenen Virtual Private Server (VPS) oder einen dedizierten Root-Server mit direktem, uneingeschränktem Zugriff auf die zentralen Konfigurationsdateien verwalten.
Für die Konfiguration des Routers auf Serverebene ist Root-Zugriff erforderlich. Anstatt eine lokale Datei zu verwenden, weisen Sie Apache an, den Moodle-Router zu unterstützen, indem Sie die globale Anweisung „FallbackResource“ im Konfigurationsblock des Verzeichnisses Ihrer Website angeben.
# Set the server's front door directly to Moodle's public folder DocumentRoot /var/www/moodle/public
<Directory /var/www/moodle/public>
AllowOverride None Require all granted DirectoryIndex index.php FallbackResource /r.php
</Directory>
Umgang mit Unterverzeichnissen
Der Pfad „FallbackResource“ ist relativ zu Ihrem angegebenen DocumentRoot. Wenn Sie Moodle nicht in der Stammdomäne, sondern in einem Unterverzeichnis ausführen (zum Beispiel: https://yourdomain.com), müssen Sie den Fallback-Pfad in Ihrer Konfiguration an diesen Unterordner anpassen:
# Example configuration for a Moodle subdirectory installation DocumentRoot /var/www/html
<Directory /var/www/html/moodle/public>
AllowOverride None Require all granted DirectoryIndex index.php FallbackResource /moodle/public/r.php
</Directory>* DirectoryIndex index.php: Diese Zeile muss direkt über der „fallback“-Anweisung stehen, um zu verhindern, dass unnötige HTTP-404-Fehler den Moodle-Router stören.
- „Alle zulassen“: Damit wird dem normalen Webverkehr uneingeschränkter Zugriff auf Ihre öffentlichen Moodle-Routing-Endpunkte gewährt.
Methode B: Über eine .htaccess-Datei
Die Verwendung einer .htaccess-Datei ist die beste Lösung für Shared-Hosting-Umgebungen oder Server, die über Control Panels wie cPanel verwaltet werden. Dieser Ansatz funktioniert nur unter Apache und erfordert weder eine Änderung der globalen Konfigurationsdateien noch eine Änderung des Stammverzeichnisses des Servers. Er funktioniert auch, wenn Sie mehrere Moodle-Seiten mithilfe von Symlinks installiert haben. Oft ist dies die einfachste und flexibelste Methode, den Router einzurichten.
Viele Hosting-Anbieter (wie beispielsweise GoDaddy) bieten Linux im Paket mit einem Control Panel wie cPanel an. Ist ein Control Panel aktiv, verwaltet es die Server-Struktur, wobei häufig Ordner umbenannt oder wichtige Konfigurationen tief in benutzerdefinierten Systemunterverzeichnissen versteckt werden. Glücklicherweise ermöglicht eine .htaccess-Lösung, globale Serverdateien vollständig zu umgehen. Dieser Ansatz unterstützt zudem nahtlos den Betrieb mehrerer isolierter Moodle-Instanzen auf einem einzigen Server – Sie legen einfach eine separate .htaccess-Datei im Ordner `/public` jeder Website ab.
Erstellen der .htaccess-Datei
Erstellen Sie eine neue Datei mit dem Namen `.htaccess`, die die folgenden Regeln enthält, und legen Sie sie direkt im Verzeichnis `public/` Ihrer Moodle-Seite ab.
Hinweis: Da diese Datei mit einem Punkt (.) beginnt, wird sie unter Linux als versteckte Datei behandelt. Einige Dateiverwaltungssysteme blenden sie möglicherweise aus, es sei denn, Sie aktivieren die Option „Versteckte Dateien anzeigen“. Alternativ benennen manche Nutzer die Datei während der Bearbeitung zunächst als `htaccess.txt` und benennen sie anschließend in `.htaccess` um, sobald sie sich im Ordner `moodle/public` befindet.
# Name this file ".htaccess" and place it into the moodle/public subdirectory. DirectoryIndex index.php
# Essential if your Moodle environment utilizes symlinks Options +FollowSymLinks
# Safely disable open directory browsing Options -Indexes
<IfModule mod_rewrite.c>
RewriteEngine On
# ========================================== # 1. PATH SECURITY RESTRICTIONS # ========================================== RewriteRule "(\/vendor\/)" - [F] RewriteRule "(\/node_modules\/)" - [F] RewriteRule "(^|/)\.(?!well-known\/)" - [F] RewriteRule "(composer\.json)" - [F] RewriteRule "(\.lock)" - [F] RewriteRule "(\/environment.xml)" - [F] RewriteRule "(\/install.xml)" - [F] RewriteRule "(\/README)" - [F] RewriteRule "(\/readme)" - [F] RewriteRule "(\/readme_moodle)" - [F] RewriteRule "(\/upgrade\.txt)" - [F] RewriteRule "(\/UPGRADING\.md)" - [F] RewriteRule "(phpunit\.xml\.dist)" - [F] RewriteRule "(\/tests\/behat\/)" - [F] RewriteRule "(\/fixtures\/)" - [F] RewriteRule "(\/upgrade\.txt|UPGRADING\.md|UPGRADING\-CURRENT\.md)" - [F]
# ========================================== # 2. HARDCODED MOODLE ENVIRONMENT TEST ROUTES # ========================================== RewriteRule ^core/check/controller/test$ r.php [QSA,L] RewriteRule ^api/rest/v2/openapi.json$ r.php [QSA,L] RewriteRule ^lib/exampleshimroute2\.php$ r.php [QSA,L]
# ==========================================
# 3. CATCH-ALL ROUTING FALLBACK
# ==========================================
# If the requested file or directory does not exist physically on disk, route to r.php
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ r.php [QSA,L]
</IfModule>
Dies ist eine umfassende, produktionsreife „.htaccess“-Konfiguration. Zwar würde technisch gesehen auch eine kürzere Datei ausreichen, doch diese zusätzlichen Regeln sorgen für wertvolle zusätzliche Sicherheitsebenen und die Einhaltung von Umgebungsvorschriften, ohne die Leistung von Moodle zu beeinträchtigen.
Standardmäßige Router-Konfigurationen erfordern in der Regel eine „FallbackResource“-Anweisung. Durch die Verwendung dieses `mod_rewrite`-Blocks entfällt jedoch die Notwendigkeit für „FallbackResource“, was Ihnen mehr Flexibilität bietet, da das Skript den Namen Ihres spezifischen Moodle-Stammordners nicht kennen muss. Das „mod_rewrite“-Modul ist auf fast allen modernen kommerziellen Webservern standardmäßig aktiviert.
Lokale Entwicklungsumgebungen: MAMP und Laragon
Lokale Entwicklungsumgebungen sollten Apache ausführen, um diese .htaccess-Lösung nutzen zu können. Da lokale Testseiten in der Regel nicht für das öffentliche Internet zugänglich sind, muss Ihre .htaccess-Datei nicht so umfassend sein wie die auf einem Produktionsserver. Dies zeigt auch, dass sich .htaccess-Dateien voneinander unterscheiden können.
Erstellen Sie eine vereinfachte .htaccess-Datei und legen Sie sie mit den folgenden Regeln im Verzeichnis „public/“ Ihrer lokalen Website ab:
Options +FollowSymLinks DirectoryIndex index.php
<IfModule mod_rewrite.c>
RewriteEngine On
# Let Apache serve real files or folders directly
RewriteCond %{REQUEST_FILENAME} -f [OR]
RewriteCond %{REQUEST_FILENAME} -d
RewriteRule ^ - [L]
# Catch everything else and force-route it to r.php RewriteRule ^ r.php [L]
</IfModule>
Durchsetzung von Server-Überschreibungen
Um diese lokale Datei zu verwenden, stellen Sie sicher, dass Ihr Server lokale Überschreibungen zulässt. Standardmäßig verhindern Neuinstallationen von MAMP und Laragon, dass Änderungen über .htaccess-Dateien vorgenommen werden können. Das bedeutet, dass Sie die Hauptkonfigurationsdatei httpd.conf des Servers bearbeiten müssen.
Für MAMP: # Öffnen Sie die Hauptkonfigurationsdatei von Apache (die sich normalerweise unter /Applications/MAMP/conf/apache/httpd.conf befindet).
- Suchen Sie nach dem Codeabschnitt, der mit <Directory "/Applications/MAMP/htdocs"> übereinstimmt.
- Suchen Sie die Zeile mit dem Eintrag „AllowOverride None“ und ändern Sie ihn in „AllowOverride All“.
- Durchsuchen Sie die Datei weiter nach unten, um einen zweiten identischen Block zu finden, und stellen Sie sicher, dass die Zeile „AllowOverride None“ dort ebenfalls in „AllowOverride All“ geändert wird.
- Suchen Sie in dieser Datei nach „LoadModule rewrite_module modules/mod_rewrite.so“. Wenn der Eintrag mit einem Rautezeichen (#) beginnt, entfernen Sie dieses, um den Kommentar zu entfernen und das Modul zu aktivieren.
- Speichern Sie die Datei und starten Sie Ihren MAMP-Server neu (Schritt 5).
Für Laragon: # Öffnen Sie die Apache-Konfigurationsdatei (die sich in der Regel unter einem Pfad wie C:/Laragon/bin/apache/httpd-[Version]/conf/httpd.conf befindet).
- Befolgen Sie genau die gleichen Bearbeitungsschritte, die oben für MAMP beschrieben wurden, und ändern Sie dabei die „AllowOverride“-Anweisungen auf „All“ und stellen Sie sicher, dass mod_rewrite aktiviert ist.
- Speichern Sie die Datei und starten Sie Ihren Laragon-Server neu (Schritt 5).
Durch die Aktivierung des Moduls „mod_rewrite“ können Sie die strenge „FallbackResource“-Anforderung aus Ihren lokalen Verzeichniseinstellungen entfernen. Dadurch werden Ihre Dateien flexibler, da der Name Ihres Moodle-Installationsordners nicht mehr fest in Ihrer Codestruktur hinterlegt sein muss.
Nginx konfigurieren
Hinweis: Es gibt eine Dokumentationsseite zu Nginx, die vielleicht hilfreich sein könnte.
Option 1: Standard-Root-Installation
Wenn Ihre Moodle-Seite direkt auf Ihrer Hauptdomain installiert ist (z. B. `https://yourdomain.com`), fügen Sie den folgenden Block zu Ihrer Nginx-Konfiguration hinzu:
location / {
try_files $uri /r.php$is_args$args;
}
Option 2: Installation in einem Unterverzeichnis
Befindet sich Ihre Moodle-Installation nicht in der Stammdomain, sondern in einem Unterordner (z. B. `https://yourdomain.com`), müssen Sie einen Pfad angeben:
location /moodle/ {
try_files $uri $uri/ /moodle/r.php$is_args$args;
}
Option 3: Mehrere Moodle-Installationen (für Fortgeschrittene)
Wenn Sie mehrere unabhängige Moodle-Seiten auf einem einzigen Server hosten, können Sie einen regulären Ausdruck (Groß-/Kleinschreibung beachten) verwenden, um den Pfad zum Seitenordner dynamisch zu ermitteln:
location ~ ^/(?<sitepath>[^/]*)/ {
try_files $uri $uri/ /$sitepath/r.php;
}* $uri: Dies ist der genaue Dateipfad, der vom Browser angefordert wurde. Wenn ein Schüler eine echte Datei anfordert (z. B. ein Kern-Stylesheet oder eine JavaScript-Datei), stellt Nginx diese sofort bereit.
- /r.php: Wenn die Anfrage keiner tatsächlichen Datei entspricht, greift Nginx auf diese Datei zurück und übergibt die Kontrolle an die Moodle-Routing-Engine.
IIS konfigurieren
Internet Information Services (IIS) ist die Webserver-Plattform von Microsoft für Windows-Umgebungen. Ähnlich wie Apache unterstützt IIS die Konfiguration auf Verzeichnisebene über eine lokale Datei namens web.config.
„Hinweis:“ Die folgenden Anleitungen stammen aus der Community und wurden von Moodle HQ nicht getestet. Wenn Sie eine IIS-Umgebung verwalten und geprüfte Updates bereitstellen können, würden wir uns freuen, wenn Sie diese auf dieser Seite veröffentlichen würden.
Um den Moodle Router zu unterstützen, muss auf Ihrem Server der offizielle URL Rewriter von Microsoft installiert sein. Sobald das Modul aktiviert ist, öffnen Sie die Datei `web.config` im Verzeichnis `public/` Ihrer Moodle-Site oder erstellen Sie sie, und fügen Sie dann den folgenden XML-Rewrite-Block ein:
<?xml version="1.0" encoding="UTF-8"?> <configuration>
<system.webServer>
<rewrite>
<rules>
<rule name="Moodle Router" stopProcessing="true">
<match url="^(.*)$" ignoreCase="false" />
<conditions logicalGrouping="MatchAll">
<add input="{REQUEST_FILENAME}" matchType="IsFile" ignoreCase="false" negate="true" />
</conditions>
<action type="Rewrite" url="r.php" appendQueryString="true" />
</rule>
</rules>
</rewrite>
</system.webServer>
</configuration>* negate="true": Dies weist IIS an, die Umschreibungsregel zu ignorieren, wenn ein Schüler eine echte Datei (z. B. ein Grafik-Symbol oder eine zentrale JavaScript-Datei) anfordert, die auf der Festplatte vorhanden ist.
- appendQueryString="true": Dadurch wird sichergestellt, dass alle an einen Link angehängten Datenparameter über die Umschreibungsregel direkt an die Routing-Engine von Moodle weitergeleitet werden.
Schritt 4: Starten Sie den Server neu (falls erforderlich)
Je nach Ihrer Hosting-Umgebung müssen Sie möglicherweise Ihren Webserver neu starten, damit die neuen Konfigurationsregeln wirksam werden. * Lokale Entwicklungsumgebungen: Bei Plattformen wie MAMP, XAMPP oder Laragon ist fast immer ein manueller Neustart oder ein Neuladen des Servers erforderlich, um Konfigurationsänderungen zu übernehmen.
- Produktionsserver und Control Panels: In vielen Unternehmensumgebungen – sei es bei Virtual Private Servern (VPS) oder bei Control Panels wie cPanel – werden Änderungen auf Verzeichnisebene sofort wirksam, ohne dass ein vollständiger Neustart des Servers erforderlich ist.
Schritt 5: Überprüfen Sie die Funktionsfähigkeit des Routers
Nachdem Ihre Serverkonfiguration nun aktualisiert wurde und läuft, ist es an der Zeit, Ihre Arbeit zu überprüfen. Kehren Sie zu Schritt 2 zurück und führen Sie Test A (Der 404-Verhaltenstest) und Test B (Der Deep-Link-Test) erneut durch. Wenn Ihr Browser die gestaltete Moodle-Fehlerseite und die Kursverwaltungsseite anzeigt, funktioniert Ihr Router offiziell.
Schritt 6: Benachrichtigung zur Umgebung löschen
Sobald Sie sich vergewissert haben, dass Ihr Router ordnungsgemäß funktioniert, können Sie die statische Warnmeldung in der Umgebungsprüfung von Moodle zurücksetzen.
Öffnen Sie Ihre Hauptdatei config.php und scrollen Sie zum Ende des Skripts. Fügen Sie die folgende Konfigurationszeile ein, in der Regel direkt über der letzten „require_once“-Anweisung:
$CFG->routerconfigured = true; require_once(__DIR__ . '/lib/setup.php');
Dadurch wird Moodle mitgeteilt, dass Sie die Umgebung erfolgreich validiert haben, und der Status auf der Seite „Site-Administration > Server > Umgebung“ wird aktualisiert.