Ich hatte zwar den Job nicht
aber... wenn man in index.php NACH der Zeile:
$pageinfo = PageInfoOperations::LoadPageInfoByContentAlias($page);
so einen Code einfügt:
$manager =& $gCms->GetHierarchyManager();
$node =& $manager->GetNodeByAlias($page);
if (is_object($node)) {
$content =& $node->GetContent();
if (is_object($content))
{
if (!isset($params['mact']) &&
$config['root_url'].$_SERVER['REQUEST_URI'] != $content->GetURL()) {
if (get_site_preference('enablecustom404') == '' || get_site_preference('enablecustom404') == "0")
{
ErrorHandler404();
exit;
} else {
$pageinfo = PageInfoOperations::LoadPageInfoByContentAlias('');
}
}
}
}
dann sollte es klappen.
Was hier gemacht wird? Es wird versucht aus dem übergebenen Alias eine URL zu erzeugen. Wenn die URL der aufgerufenen Seite zu der erzeugten URL
nicht passt, dann wird 404 Fehler ausgegeben.
Beispiel: Angenommen es gibt eine Seite unter
http://www.mysite.com/sub/mypage. Wenn Hierarchie eingeschaltet ist und die Seite mit
http://www.mysite.com/mypage aufgerufen wird, dann wird die obige Adresse, die von CMSMS generiert wird, nicht zu aufgerufenen URL passen und damit 404 produziert. Anders rum, wenn Hierarchie ausgeschaltet ist, schlägt die erste Variante fehl und gibt 404 zurück.
Ich habe es getestet mit
$config['assume_mod_rewrite'] = true;
$config['use_hierarchy'] = false;
sowie
$config['assume_mod_rewrite'] = true;
$config['use_hierarchy'] = true;
auf CMSMS 1.4.1 und CMSMS 1.2.5, beides geht.
Suche Tester