Table of contents
echte URL — SEFURL
anstatt http://umija.org/tiki-index.php?page=20060248 sollte da http://umija.org/20060248 stehen. Damit soll dann unser pagerank gesteigert werden. Aktuelle Übersicht über unseren Rank.
Falls wir drauf kommen wie das geht, das nicht nur apache die annimmt, sondern auch tikieiki die ausspucket, müssen wir auf jeden Fall einen Apacheredirect 301 HTTP-Statuscodes senden, da uns google sonst doppelten content vorwirft.
Lösungswege
- eine erste einfach Lösung: quais externe links : klml
- BITTE NICHT!!! sonnst funktionieren die gesamten backlinks nicht mehr!!
- evtl. hiermit durch Anpassung
Lösung
Mit dem aktuellen anstehendem update von tikiwiki wird folgendes eingeführt:
im Verzeichnis lib/smarty/libs/plugins des TikiWiki Verzeichnisses, wird die Datei outputfilter.urlt.php angelegt. Der Inhalt der Datei:
<?php
function smarty_outputfilter_urlt($string)
{
$string=preg_replace('/href=([\'|\"])tiki-index\.php\?page=([^&|^\"|^\']*)([^\'|^\"]*)/','href=$1/$2',$string);
return $string;
}
?>
Danach wird in der setup_smarty.php Datei die Zeile
$smarty->load_filter('output','urlt');
hinzugefügt. Dies sollte am Ende der Datei, nach der Zeile:
//$smarty->load_filter('output','trimwhitespace');
geschehen.
Das wars. Auch wenn der EdMa für die preg_replace Zeile den ganzen Tage gebraucht hat, sollte dies später in einigen Minuten einrichtbar sein.
Natürlich funktioniert das ganze auch nur dann, wenn die Weiterleitung umija:directurl eingerichtet ist und auch funktioniert ;-)
Wie oben erwähnt müssen die langen URL's (mit Sonderzeichen wie &, ? ...) einen 301 Status liefern und auf die kurze URL weiterleiten. Dies wird mit rewrite rules von Apache erledigt. Dabei ist es wichtig zu beachten dass keine Endlosschleife entsteht. Der nachfolgende Code wird in der jeweiligen gültigen /etc/sites-availible/XYZ eingefügt. Die erste Zeile sorgt nur dafür dass die Start-Seite nicht über verschiedene URL's erreichbar ist.
RewriteRule ^\/$ /umijaSTART [L,R=302]
RewriteCond %{QUERY_STRING} ^page=([^&]*)[&highlight=(^&*)*]?[&bl]?
RewriteRule ^/tiki-index\.php /%1? [R=permanent,S,L]Die Zeilen werden noch weiter ausgebaut damit auch highlighting funktioniert.
BUGS
- Das beobachten der Seiten funktioniert nicht aus der Seite heraus. Möglich lösung wäre die Reg. Ausd. umzuschreiben.
- 20070097 Fehler in dem Outputfilter, aktuelle Version funktioniert jedoch wieder
- Wenn ne Fehlermeldung in der Art von
[[Warning: session_start() [function.session-start]: Cannot send session cache limiter]
auftaucht, einfach die veränderten Dateien auf Leerzeichen vor <?php bzw. nach ?> überprüfen !