Handbuch:Kurz-URL
Kurz-URLs oder URL Rewrites verbergen die Datei-Erweiterung von PHP in der Seitenadresse. Nimm dir ein paar Minuten Zeit, um eine stabile URL-Struktur für deine Webseite auszuarbeiten, bevor du anfängst. Das veringert spätere Probleme.
Einleitung
Ziel
Der Standard-Installationspfad von MediaWiki sieht wie folgt aus:
/var/www/html/mediawiki
(wenn vom Root-User installiert)/home/johndoe/public_html/mediawiki
(wenn beim Shared-Hosting-Provider installiert)
MediaWikis standardmäßige Seitenadressen ähneln diesen Beispielen:
https://example.org/w/index.php/Page_title
(aktuelle Versionen von MediaWiki, ohne CGI-Unterstüzung)https://example.org/w/index.php?title=Page_title
(aktuelle Versionen von MediaWiki, mit CGI-Unterstüzung)
Mit den Methoden, wie sie auf dieser Seite umrissen werden, können wir MediaWiki so konfigurieren, dass es in etwa so aussieht:
https://example.org/wiki/Page_title
Das ist die am häufigsten verwendete Konfiguration, wie sie auch von Wikipedia verwendet wird. Jedoch ist sie nicht der Standard, da sie Modifikationen am Server erfordert.https://example.org/view/Page_title
https://wiki.example.org/view/Page_title
https://example.org/Page_title
https://wiki.example.org/Page_title
Teils werden die letzten beiden Konfigurationen nicht empfohlen. Für mögliche Probleme und Lösungen dafür siehe Manual:Wiki in site root directory .
Vor- und Nachteile
- Vorteil: Kurz-URLs verstecken einige technischen Details vor dem Endnutzer, was wünschenswert für Seitenbetreiber sein kann. Unter anderem können sie konstant gehalten werden, auch wenn sich die darunter liegende Software ändern sollte. (Siehe oben für den Unterschied zwischen MediaWikis standardmäßiger URL-Struktur mit aktiviertem CGI und ohne CGI.) Sie sind für Besucher auch besser zu lesen, zu merken und einzugeben. Darüber hinaus wirken sich Kurz-URLs gegenüber Standard-URLs positiv auf die Suchmaschinenoptimierung aus, da URLs, die kein
?
enthalten, von Suchmaschinen bei der Berechnung des Seitenranks bevorzugt werden. - Nachteil: Sie erfordern eine Konfiguration; daher könnte es, abhängig von der Hosting-Umgebung, die du benutzt, schwierig sein, sie nachzuahmen. Jedoch sollten die meisten zahlpflichtigen Webhosting-Dienste diese Funktion unterstützen, weil jeder weit verbreitete Webserver so konfiguriert werden kann, dass er Kurz-URLs verwendet. Jeder Host, der dir diese Funktion nicht anbietet, ist dein Geld nicht wert.
Anleitungen
Unsere offiziellen Anleitungen zur Kurz-URL-Konfiguration für unterschiedliche Webserver. Wähle die Konfiguration deines Webservers aus dieser Liste. Falls du nicht weißt, welche Server-Software du nutzt, dann ist es höchstwahrscheinlich Apache.
Andere How-To Mini-Anleitungen
Jeder ist willkommen, eine How-to-Lösungsseite zu erstellen und sie in die untenstehende Liste einzutragen. Bitte verwende einen sinnvollen Namen für die Seite, der zu den unten aufgeführten Namen passt. Wenn jede einzelne Lösung ihre eigene Seite hat, können Leser komplexe Varianten überspringen, die sie nicht brauchen. „Fasse dich kurz“. Bitte schreibe in einem kurzgefassten, verständlichen Stil mit einer separaten Seite für jede unterschiedliche Lösung.
Um anderen zu helfen, herauszufinden, welche Kurz-URL-Methoden wirklich funktionieren, bearbeite bitte die Seite und erhöhe nach jedem Ausprobieren einer einzelnen Methode die Zahlen „worked“ oder „didn't work“ für die entsprechende Anleitung und erstelle eine kurze (oder lange, deine Wahl) Beschreibung, was schiefgelaufen ist, indem du auf den Link auf deiner Nummer klickst.
URL wie - example.com/wiki/Seitentitel
Root-Zugriff
Diese Methoden erfordern einen Zugriff auf die Serverkonfiguration. Wenn du bei einem geteilten Betreiber bist, wirst du diesen wahrscheinlich nicht haben. In diesem Fall musst du eine Methode wählen, die keinen Root-Zugriff erfordert. Du kannst direkt zum „MediaWiki ShortURL Builder“-Werkzeug gehen und dort den angezeigten Anweisungen folgen. Wähle „I don't have root access“, nachdem du die URL zu deinem Wiki eingegeben hast.
- wiki/Page title -- Lighttpd rewrite--root access x3
- wiki/Page title -- Cherokee rewrite--root access x1
- IIS8.5 x2 x1
- Abyss
(Für Hilfestellungen zu Apache, siehe den Link im Abschnitt Anleitungen.)
URL wie - example.com/Seitentitel
Wie man URLs im Format example.com/Seitentitel
erstellt:
- Page title - nginx, Root Access, PHP as a CGI module x6
- Page title -- Windows & Apache without 403 on Special Pages x3
URL wie - wiki.example.com/Seitentitel
Wie man URLs im Format wiki.example.com/Seitentitel
erstellt:
Fehlerbehebung
Problem mit Et-Zeichen (&)
Das Et-Zeichen-Problem tritt dann auf, wenn im Seitentitel Symbole (wie z. B. &, ?, #, + und /) auftauchen, die, obwohl sie im Link richtig codiert werden, nicht korrekt von mod_rewrite an das Skript weitergereicht werden. Dies manifestiert sich in 404-Seite nicht gefunden-Fehlermeldungen, weil der Titel an der Stelle des speziellen Zeichens abgeschnitten wird. Zum Beispiel liefert das Klicken auf einen Link zu „Hans & Marias Seite“ eine 404-Fehlermeldung, weil MediaWiki nach einer Seite namens „Hans “ sucht.
Dies kommt dadurch, dass Et-Zeichen in Langformnamen wie Query String-Separatoren behandelt werden und nie die PHP-Laufzeitumgebung erreichen würden. Verursacht wird das durch einen alten und problematischen Fehler von mod_rewrite. [1]
Lösung:
Dieser Fehler wird durch den Bereich ?title=$1
in Rewrite Rules wie /index.php?title$1
verursacht, was keinstenfalls vonnöten, stattdessen aber schädlich ist.
MediaWiki empfängt die Pfade direkt durch die REQUEST_URI, schreibe daher alles nach /index.php um.
Cache leeren
Wenn du feststellst, dass deine Änderungen an $wgArticlePath
in LocalSettings.php
nicht in example.com/wiki/Main_Page
widergespiegelt werden, kann das daran liegen, dass MediaWiki die Links entsprechend der vorherigen Einstellungen zwischenspeichert.
Rufe example.com/wiki/Main_Page?action=purge
auf, um MediaWiki zu zwingen, die gecachten Links neu zu generieren.
Was ebenfalls möglich ist:
- die MySQL query "TRUNCATE objectcache;" ausführen der
- sicherstellen, dass
$wgCacheEpoch
aktualisiert ist (falls$wgInvalidateCacheOnLocalSettingsChange
aktiviert ist, brauchst du nur LocalSettings.php zu bearbeiten, um ihn zu leeren)
Leite Besucher deiner Domain zu deinem Wiki weiter
Unsere offiziellen Anleitungen für die Kurz-URL-Konfiguration enthalten Empfehlungen, wie man mit der Short-URL-Konfiguration auf das Wurzelverzeichnis der Website verweist.
Unser Apache-Anleitung empfiehlt zum Beispiel, dieses zu verwenden, um das Stammverzeichnis der Website auf das Wiki zu zeigen:
RewriteRule ^/*$ %{DOCUMENT_ROOT}/w/index.php [L]
Beachte, dass wir keine HTTP-Weiterleitungen zu deinem Wiki-Pfad oder direkt zur Hauptseite empfehlen. Denn die direkte Weiterleitung auf die Hauptseite codiert variable Teile des Seitenaufbaus deines Wikis in deiner Serverkonfiguration fest. Und das Weiterleiten zum Wiki-Pfad wird in zwei Weiterleitungen resultieren. Schreibe einfach den Root-Pfad zu MediaWiki um und es kümmert sich selbst um die 301-Weiterleitung zur Hauptseite.
Wenn du virtuelle Hosts benutzt, platziere die Rewrite Regeln in die Deklaration des virtuellen Hosts!
Ein Wiki von /wiki zu /w verschieben
Ein häufiger Anfängerfehler ist es, MediaWiki selbst (den Quellcode, nicht die Kurz-URL) in /wiki
statt in /w
zu installieren.
Nach der Installation würde man den Fehler erkennen, wenn man versucht, Kurz-URLs zu konfigurieren (was schwierig werden würde, da der virtuelle Pfad dann mit dem realen Pfad in Konflikt gerät).
Es gibt eine Anleitung für das Verschieben von Wikis im Allgemeinen, aber das ist zu kompliziert, wenn man nur das Installationsverzeichnis ändern will (und auf demselben Server, derselben Datenbank und demselben Hostnamen bleiben will).
Was du zu tun hast:
- Sichere die
LocalSettings.php
und alle anderen Konfigurationsdateien, die du eventuell erstellt hast (z. B. deine.htaccess
).
Benenne den Installationsordner von MediaWiki von deinem Server von /wiki
zu /w
um.
- Setze
$wgScriptPath
inLocalSettings.php
auf"/w"
und entferne (oder kommentiere aus) jede Definition von$wgArticlePath
(diese Variable wird beim Einrichten von Kurz-URLs wieder geändert, weiter unten) - Zu diesem Zeitpunkt sollte dein Wiki unter
example.org/w
normal funktionieren. - Gehe nun durch die reguläre Anleitung, um Kurz-URLs einzurichten
- Führe ein paar Tests mit deinem Wiki durch, um sicherzustellen, dass nichts kaputt ist. Bearbeite eine Seite, besuche verschiedene Seiten, etc. Wenn irgendetwas ungewöhnlich erscheint, mache die Änderungen rückgängig, indem du dein Backup von
LocalSettings.php
und die anderen relevanten Dateien, die du während der Konfiguration der Kurz-URLs geändert haben könntest, wiederherstellst und deinen Ordner wieder in/wiki
umbenennst.
Hinweis für Shared-Hosting-Benutzer: Viele Shared-Hosting-Angebote bieten einen Applikations-Manager zur automatischen Installation, Aktualisierung und Sicherung von Applikationen wie MediaWiki. Wenn dein Tarif dies vorsieht und du diese Funktionen weiterhin nutzen möchtest, solltest dich an den technischen Support wenden und ihn darüber informieren, dass du gerade dein MediaWiki-Installationsverzeichnis manuell geändert hast.
Tricks
Siehe auch
- Erläuterung, was CGI-Module sind
- $wgUsePathInfo - Konfigurationseinstellung, die festlegt, ob "hübsche" URLs verwendet werden sollen oder nicht
- Hinweise zur Platzierung einer Wiki-Installation im Site-Root-Verzeichnis
- $wgActionPaths - Konfigurationseinstellung zum Definieren "hübscher" URLs für andere Aktionen, wie z. B. Bearbeiten oder Verlauf
- URL-Aufräum-RFC - schlägt "sauberere URLs für Bearbeitung, Vorschau von Skins usw." vor.
Externe Verweise
- Apache Module mod_rewrite - angeforderte URLs on the fly umschreiben
- MediaWiki Short URL Builder-Werkzeug - Ein Werkzeug, das automatisch eine Kurz-URL-Konfiguration generieren kann, die verlässlicher als die Konfigurationen in diesen Anleitungsseiten ist.
- URL as UI von Jakob Nielsen zur Bedeutung persistenter, praxistauglicher URLs.
Einzelnachweise
- ↑ Bugzilla mod_rewrite for ampersand bug, unvollständig behoben für manche Benutzer, aber erst nach 13 Jahren