2016-04-27 8 views
0

Ich habe MediaWiki 1.23.9 vor kurzem auf einem HostGator gehosteten Server installiert (Apache-basierte glaube ich). Ich habe alles konfiguriert und habe schöne URLs eingerichtet, habe Action URls auch richtig schreiben und alles war gut. Ich bemerkte jedoch, dass Anker-Links, speziell die automatisch generierten Section-Header, nicht ganz so hübsch sind. Sie werden "Punktcodierung" unterzogen, aus irgendeinem Grund bin ich mir nicht 100% ig sicher.Stop MediaWiki Encoding Klammern im Abschnitt Anker

Dies führt dazu, dass /w/MyPage#Section_1_(Stuff_Here) zu /w/MyPage#Section_1_.28Stuff_Here.29 wird.

Da Klammern gültige URI-Zeichen sind (und tatsächlich, wenn sie in einem Seitentitel verwendet werden, sind sie nicht korrekt in der URI codiert), verstehe ich nicht, warum dies geschieht oder wie man sie stoppt. Ich habe alle Arten von Fehlerberichten durchgesehen und sogar versucht, durch die MediaWiki-Quelle zu blättern. Ich habe die Funktion gefunden, die die Codierung durchführt, aber soweit ich sagen kann, sollten Klammern nicht codiert werden.

Meine Frage ist: Gibt es eine Möglichkeit zu verhindern, MediaWiki Klammern in Abschnittsheaderanker Codierung? Kann ich dieses Verhalten mithilfe von .htaccess-Regeln maskieren? Als Referenz ist meine aktuelle .htaccess-Datei unten, obwohl ich es sehr viel lieber wäre, sie abzuschalten als sie zu maskieren.

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

RewriteCond %{DOCUMENT_ROOT}%{REQUEST_URI} !-f 
RewriteCond %{DOCUMENT_ROOT}%{REQUEST_URI} !-d 
RewriteRule ^/?w/images/thumb/[0-9a-f]/[0-9a-f][0-9a-f]/([^/]+)/([0-9]+)px-.*$ %{DOCUMENT_ROOT}/w/thumb.php?f=$1&width=$2 [L,QSA,B] 

RewriteCond %{DOCUMENT_ROOT}%{REQUEST_URI} !-f 
RewriteCond %{DOCUMENT_ROOT}%{REQUEST_URI} !-d 
RewriteRule ^/?w/images/thumb/archive/[0-9a-f]/[0-9a-f][0-9a-f]/([^/]+)/([0-9]+)px-.*$ %{DOCUMENT_ROOT}/w/thumb.php?f=$1&width=$2&archived=1 [L,QSA,B] 

Hinweis:This answer to a different question bietet eine schnelle Erklärung, was die „Punkt-Codierung“ -Prozess ist, wenn auch nicht, wie Klammern davon auszuschließen.

+1

Versuchen Sie ['$ wgExperimentalHtmlIds'] (https://www.mediawiki.org/wiki/Manual:$wgExperimentalHtmlIds). – Tgr

+0

@Tgr Arbeitete wie ein Charme! Re-Post das als Antwort und ich werde es akzeptieren! –

Antwort

1

MediaWiki codiert Section IDs zu Ehren HTML4 restrictions. Dies ist ein Relikt der Vergangenheit, da MediaWiki heutzutage HTML5 verwendet, wodurch diese Einschränkungen aufgehoben wurden. Sie können $wgExperimentalHtmlIds auf true festlegen, damit MediaWiki den HTML5-Regeln folgt (wobei nur Leerzeichen konvertiert werden müssen).

Dies wird als "experimentell" bezeichnet, da zu der Zeit (die Einstellung wurde 2010 eingeführt) Browser-Unterstützung für HTML5 war etwas unzuverlässig. Heute ist das wahrscheinlich in Ordnung, aber niemand hat das tatsächlich getestet, also benutze es auf eigene Gefahr.

+0

Danke! Das bisschen Hintergrund um die Option ist auch sehr interessant! –

Verwandte Themen