Handbuch:Kurz-URL/Seitentitel -- Windows & Apache ohne 403 auf speziellen Seiten
Warnung: Diese Seite mit der Kurz-URL enthält schlechte Ratschläge zur Konfiguration deines Servers, die dazu führen können, dass einige Seiten deines Wikis nicht funktionieren und/oder dir Probleme beim Upgrade bereiten können. Alle Seiten, die sich mit der Konfiguration von Kurz-URLs auf dem Apache beschäftigen, wurden durch Handbuch:Kurz-URL/Apache ersetzt. Dieser Leitfaden bleibt einfach deshalb bestehen, weil es auf dieser Seite einen Sonderfall gibt, der in dieser Handbuchseite noch nicht berücksichtigt wurde. |
Because the colon character is used by NTFS to denote symbolic links, when http://example.com/Special:SpecialPages is accessed, Windows looks for a non-existent symbolic link in the document root for example.com. Dies erzeugt einen 403-Fehler.
Das Einfügen einer .htaccess-Datei in den Dokumentstamm löst das Problem nicht, da der Fehler auftritt, bevor die .htaccess-Datei geparst wird. Um zu verhindern, dass der Fehler auftritt, muss das Doppelpunktzeichen in einer entsprechenden .conf-Datei angesprochen werden.
Schritt 1
Wenn du vHosts konfiguriert hast, füge die folgenden Rewrite-Anweisungen in die entsprechende <VirtualHost>
-Anweisung ein.
Andernfalls fügst du sie in die <directory>
-Direktive für das Stammverzeichnis deines Wikis ein:
RewriteEngine On RewriteRule ^/(.*):(.*) /index.php/$1:$2
Schritt 2
Bearbeite deine LocalSettings.php-Datei und füge sie ein:
$wgArticlePath = "/$1";
Hinweis
It should be noted that this method of Pretty URLs is not currently compatible with pretty action URLs (e.g. /action/edit/Main_page). MediaWiki geht davon aus, dass alles im Pfad (abgesehen von der Domain) ein Seitentitel ist, was zu einer Rekursionsschleife führt, die dazu führt, dass beim Versuch, /Hauptseite zu bearbeiten, stattdessen eine neue Seite mit dem Namen /action/edit/Main_Page erstellt wird. Dieses Problem wurde in v.1.15.1 bestätigt.
Schritt 3
Füge diese Regeln zu der Datei .htaccess in deinem Stammverzeichnis hinzu.
RewriteEngine On RewriteBase / RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d RewriteRule ^(.*) /index.php/$1 [L,QSA]
Schlussfolgerung
Die Rewrite-Regeln in der .conf-Datei übersetzen http://example.com/Special:SpecialPage unsichtbar in http://example.com/index.php/Special:SpecialPage. Dann übersetzt die Datei .htaccess zurück in http://example.com/Special:SpecialPage, um sie zu verarbeiten.