In meinem Modul wird dieser Code verwendet, um die URL der Seite zu generieren:
JURI::base() . ContentHelperRoute::getArticleRoute( $article->id, $article->catid )
Dies funktioniert genau wie es sollte und erzeugt eine URL, die wie folgt aussieht:
http://example.com/index.php?option=com_content&view=article&id=83&catid=26&Itemid=162
Ich würde aber gerne wissen, ob es eine Möglichkeit gibt, das Modul dazu zu bringen, die SEF-URL für die aktuelle Seite zu generieren. Etwas wie:
http://example.com/resources/blog/83-illustration
rtrim(JUri::base(), '/')...
stattdessen sein,ltrim(JUri::base(), '/')...
wenn der zusätzliche Schrägstrich am Ende der JUri :: base () - Ausgabe steht.Es gibt ein System-Plugin namens System: SEF. Wenn dieses Plugin aktiviert ist, scannt es die endgültige HTML-Ausgabe unmittelbar vor dem Senden an den Browser und ersetzt alle Nicht-SEF-Links durch ihre SEF-Gegenstücke, indem es sie durchläuft
JRoute::_($url);
. Dies funktioniert nur für interne Links, obwohl es mitindex.php
beginnthttp://
. Es funktioniert also nicht, wenn der Link mit beginnt .Versuchen Sie,
JUri::base()
http: // aus dem Link zu entfernen (und damit zu entfernen), und es sollte funktionieren, wenn das Plugin aktiviert ist.quelle
Hier ist eine andere Möglichkeit, die richtige Root-URL der Site zu erhalten. Dies ist auch dann wichtig, wenn sich Ihre Site im Unterordner befindet
Dann können Sie tun
quelle