CMS Made Simple Forums
https://forum.cmsmadesimple.org/

CMSms 1.x und SEO
https://forum.cmsmadesimple.org/viewtopic.php?f=61&t=21269
Page 2 of 2

Author:  Wiedmann [ Wed May 14, 2008 2:58 pm ]
Post subject:  Re: CMS ms 1.x und SEO

Quote:
Wegen dem Statuscode 404 kann ich nur anmerken, selbst den kann CMSms standardmäßig bei der Fehlerseite nicht. Zumindest als ich das zuletzt bei ner 1.2.x überprüft habe.

Also bei mir setzt CMSMS den, wenn die 404 Seite aufgerufen wird (Global Settings).

Quote:
/test.html
/index.php?page=test.html

Stimmt. Da bräuchte man erweiterte Rewrite Regeln

Author:  marcgeldon [ Fri Jul 11, 2008 3:12 pm ]
Post subject:  Re: CMS ms 1.x und SEO

Hallo LeisureLarry!

Bin gerade auf Dein Beitrag gestoßen, da ich genau eben über dieses Thema schreiben wollte.

Meiner Meinung nach: wenn "use_hierarchy" deaktiviert ist, sollte es doch garnicht erst möglich sein "http://www.domain.de/tralala/hopsasa.html" aufzurufen. Es sollte dann nur "http://www.domain.de/hopsasa.html" funktionieren. Leider ist dem ja nicht so.

Das sollte doch besser von CMSMS abgefangen werden. Wenn ein Pfad angegeben wird, "use_hierarchy" allerdings auf "false" ist, sollte es zu einem "404" oder einer Umleitung zur "richtigen" URL kommen.

Was meint Ihr?

Author:  LeisureLarry [ Sat Jul 12, 2008 8:29 am ]
Post subject:  Re: CMS ms 1.x und SEO

Wäre schön, ist aber derzeit nicht technisch nicht möglich. Denn rein technisch gesehen, gibt es derzeit keine Hierarchien, da ein Seiten-Alias immer eindeutig sein muss. Es kann also keine zwei Aliasse geben, die identisch sind und sich nur durch ihre Position in der Hierarchie unterscheiden. Beim Seitenaufruf ist es sogar so, daß die Hierarchie-Angaben komplett ignoriert werden und nur der Alias benutzt wird, um die Seite zu finden. Ich denke auch nicht, daß sich da noch etwas vor Version 2.0 ändern wird.

Grüße aus Nürnberg
LeisureLarry (interiete.net)

Author:  marcgeldon [ Sat Jul 12, 2008 8:55 am ]
Post subject:  Re: CMS ms 1.x und SEO

Also ich denke schon, daß das technisch möglich ist. Bin mir sogar recht sicher :-)

Könnte wie folgt aussehen:

Beispiel use_hierarchy ist ANGESCHALTET:
CMSMS geht wie folgt vor: Benutzer ruft http://www.beispiel.de/abc/def/xyz.html auf. CMSMS überprüft ob die darüberliegenden Seitenaliase wirklich "def" und "abc" sind. Wenn nicht -> Umleitung auf 404.

Beispiel use_hierarchy ist AUSGESCHALTET:
Pfade in der URL werden grundsätzlich ignoriert. Benutzer ruft http://www.beispiel.de/xyz.html auf -> OK.
Benutzer ruft http://www.beispiel.de/pfad/xyz.html auf -> Umleitung auf 404

Author:  LeisureLarry [ Sat Jul 12, 2008 12:27 pm ]
Post subject:  Re: CMS ms 1.x und SEO

Technisch möglich sicherlich, aber nicht mit der Technik von CMSms 1.3, da abc und def das CMS derzeit herzlich wenig interessieren. Derzeit wird einfach nur geprüft, was xyz ist und welcher Inhalt dazu gehört. Der Teil des CMS, welcher die Seiten lädt müsste komplett neu geschrieben werden, aber mit sowas rechne ich wie gesagt erst für CMSms 2.0.

Author:  marcgeldon [ Sun Jul 13, 2008 7:35 am ]
Post subject:  Re: CMS ms 1.x und SEO

So eine Funktion wäre doch aber - ohne Recht viel Aufwand - in das aktuelle CMSMS zu bringen.

Es wäre nur die Frage, ob die (Chef)Entwickler gewillt wären, die Änderungen in den CMSMS Standardsource zu bringen?

Author:  cyberman [ Mon Jul 14, 2008 5:31 am ]
Post subject:  Re: CMS ms 1.x und SEO

marcgeldon wrote:
So eine Funktion wäre doch aber - ohne Recht viel Aufwand - in das aktuelle CMSMS zu bringen.


OK, du hast den Job ;D .

Poste doch mal einfach einen Änderungsvorschlag ... ich werd sehen, was ich tun kann.

Author:  Sonya [ Wed Aug 20, 2008 4:01 pm ]
Post subject:  Re: CMS ms 1.x und SEO

Ich hatte zwar den Job nicht :) aber... wenn man in index.php NACH der Zeile:

Quote:
$pageinfo = PageInfoOperations::LoadPageInfoByContentAlias($page);


so einen Code einfügt:

Quote:
$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
Quote:
$config['assume_mod_rewrite'] = true;
$config['use_hierarchy'] = false;

sowie
Quote:
$config['assume_mod_rewrite'] = true;
$config['use_hierarchy'] = true;

auf CMSMS 1.4.1 und CMSMS 1.2.5, beides geht.

Suche Tester :)

Author:  marcgeldon [ Wed Aug 20, 2008 9:31 pm ]
Post subject:  Re: CMS ms 1.x und SEO

Hallo Sonya!

Hatte bisher leider nicht die Zeit. Aber ich werde mir das mal anschauen... Mal eine Frage in die Runde... wenn das funktioniert, wird es möglich sein, den Code in die Standardinstallation von CMSMS zu bekommen?

Ich meine, dass ist ja eine Funktion die bisher gefehlt hat!


LG,

Marc

Author:  Sonya [ Thu Aug 21, 2008 6:25 am ]
Post subject:  Re: CMS ms 1.x und SEO

marcgeldon wrote:
Mal eine Frage in die Runde... wenn das funktioniert, wird es möglich sein, den Code in die Standardinstallation von CMSMS zu bekommen?


Die Frage gebe ich gleich an den Meister weiter :)

cyberman wrote:
Poste doch mal einfach einen Änderungsvorschlag ... ich werd sehen, was ich tun kann.

Author:  Sonya [ Thu Aug 21, 2008 8:37 am ]
Post subject:  Re: CMS ms 1.x und SEO

cyberman wrote:
Poste doch mal einfach einen Änderungsvorschlag ... ich werd sehen, was ich tun kann.

Für Entwickler: Übrigens, noch eleganter und performanter wäre es, wenn in die Variable $pageinfo die Information aus dem DB-Feld hierarchy_path mit übernommen wäre, dann müsste keine Rückwärtsprüfung der URL gemacht werden. Das erfordert aber einen Eingriff in Core-Klassen, unter anderem in die Funktion LoadPageInfoByContentAlias($alias) (class.pageinfo.inc.php). Die Lösung würde den Rahmen diesen Themas allerdings sprengen.

Author:  cyberman [ Tue Sep 16, 2008 1:53 pm ]
Post subject:  Re: CMS ms 1.x und SEO

marcgeldon wrote:
wenn das funktioniert, wird es möglich sein, den Code in die Standardinstallation von CMSMS zu bekommen?


Ich denke schon ... nur fehlt mir die Rückmeldung, dass es funktioniert 8).

Author:  LeisureLarry [ Mon Oct 20, 2008 9:15 am ]
Post subject:  Re: CMSms 1.x und SEO

Da ja immer noch das Problem existiert, daß CMSms bei Pretty URLs trotzdem die Inhalte auch mit der alten URL angibt und es somit Duplicate Content gibt.

Quote:
/test.html
/index.php?page=test.html


Hier nun ein benutzerdefinierter Tag, der dies lösen sollte:

Code:
global $gCms;

if (preg_match('/index\.php\?/', $_SERVER['REQUEST_URI'])) {
header("HTTP/1.1 301 Moved Permanently");
$pageName = $gCms->variables['page_name'];
header('Location:'.$gCms->config['root_url'].'/'.$pageName.$gCms->config['page_extension']);
header("Connection: close");
}


Der Tag sollte mit einer CMSms-Installation im Root oder aber auch in einem Unterordner zurecht kommen.

Grüße aus Nürnberg
LeisureLarry (interiete.net)

Author:  LeisureLarry [ Mon Oct 20, 2008 10:04 am ]
Post subject:  Re: CMSms 1.x und SEO

Mir fiel gerade ein, daß es noch weitere nicht gewollte URLs (zB ohne Angabe von index.php) gibt:

Quote:
/index.php?page=test
/?page=test
/?page=test.html


Deswegen hier das angepasste benutzerdefinierte Tag, daß nun auch keine Module mit ihrem mact Parameter mehr beeinflusst:

Code:
global $gCms;

if (!isset($_REQUEST['mact']) && !empty($_GET['page']) && preg_match('/(index\.php)?\?/', $_SERVER['REQUEST_URI'])) {
header("HTTP/1.1 301 Moved Permanently");
$pageName = $gCms->variables['page_name'];
header('Location:'.$gCms->config['root_url'].'/'.$pageName.$gCms->config['page_extension']);
header("Connection: close");
}


P.S.: Direkt noch eine Frage. Hat jemand eine Ahnung, ob das mact Parameter im GET erlaubt sein muss für Module oder würde POST reichen?

Grüße aus Nürnberg
LeisureLarry (interiete.net)

Page 2 of 2 All times are UTC
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
http://www.phpbb.com/