ich habe (zwecks der nutzung von mod rewrite) eine neue .htacces für mein phpnuke 5.5 geschrieben.
Dies funktioniert soweit auch einwandfrei. Wenn man in der Browseradresszeile z.B. www.domain.de/artikel.html eintippt wird automatisch zu
www.domain.de/modules.php?op=modload&na ... link&cid=5
Als nächsten Schritt bin ich hab ich angefangen die header.php so zu ändern das nun alle Links (die im Quelltext ja die dynamische Ziel_URL enthalten) in statische HTMl Links umgewandelt werden, damit die Robost schön die statischen Seiten spidern. Hierzu habe ich die Scripte dieses Beitrags als Vorlage genutzt genutzt.
Ich benutze folgende .htaccess Datei:
CODE
Code: Alles auswählen
RewriteEngine On
Options +FollowSymlinks
RewriteRule ^index.html index.php
RewriteRule ^kontakt.* modules.php
RewriteRule ^kontakte.html$ kontakt.php?op=modload&name=Web_Links&file=index&l_op=viewlink&cid=5
folgenden Code habe ich in die Header.php gleich vor dem require statement eingetragen:
CODE
Code: Alles auswählen
ob_start();
function replace_for_mod_rewrite(&$s)
{
$urlin =
array(
"'(?<!/)index.php'",
"'(?<!/)modules.php'",
"'(?<!/)kontakt.html\?op=modload&name=Web_Links&file=index&l_op=viewlink&cid=5'"
);
$urlout = array(
"index.html",
"kontakt.html",
"kontakte.html"
);
$s = preg_replace($urlin, $urlout, $s);
return $s;
}
folgenden Code habe ich in die footer.php direkt nach <?php eingetragen:
CODE
Code: Alles auswählen
$contents = ob_get_contents(); // store buffer in $contents
ob_end_clean(); // delete output buffer and stop buffering
echo replace_for_mod_rewrite($contents); //display modified buffer to screen
global $dbg_starttime;
Leider funktioniert die ganze sache noch nicht richtig.
Links zur Datei index.php werden nun in HTML umkonvertiert. Ein Link in dem vom Browser ausgegebenen Quellcode enthält nun die Ziel URL: index.html
Die modules.php wird ebenfalls nach HTML umkonvertiert. In meinem Fall heisst die modules.php jetzt kontakt.html. Leider wird wirklich nur die modules.php umkonvertiert. Alle parameter die danach folgen werden wie gewohnt, auch so ausgegeben.
So sollte eigentlich im Quelltext meiner Seite nicht dieser Link:
<a href="www.domain.de/kontakt.html?op=modload&n ... ontakte</a>
(siehe in Zeile 3 meines header.php codes nach $urlin)
sondern der folgende stehen:
<a href="www.domain.de/kontakte.html">kontakte</a>
(sieh Zeile 3 meines headrer.php codes nach $urlout)
Mich wundert es das die Sache bei den ersten beiden Dateien (index.php und modules.php) funktioniert aber das der dritte Link nicht umkonvertiert wird.
Es würde mich freuen wenn Ihr mit weiterhelfen könntet denn ich bin mit meinem Latein ziemlich am Ende und komme nicht mehr weiter.