• twitter image
  • facebook image
  • youtube image
  • linkedin image
Language: CMS Made Simple Czech CMS Made Simple France CMS Made Simple Hungary CMS Made Simple Russia CMS Made Simple Netherlands

All times are UTC




Post new topic This topic is locked, you cannot edit posts or make further replies.  [ 29 posts ]  Go to page 1, 2  Next
Author Message
 Post subject: CMSms 1.x und SEO
PostPosted: Thu Apr 17, 2008 10:05 am 
Bin gerade über einen etwas älteren Blog-Eintrag gestolpert und habe daraufhin meine eigene Website etwas optimiert.

http://blog.markus-kindler.de/archives/8

Dort wird über ein Verhalten von CMSms berichtet, daß mich auch schon gestört hat.

http://www.xyz.de/abc.html
http://www.xyz.de/def/abc.html
http://www.xyz.de/abc.def

Alle dargestellten Links würden denselben Inhalt anzeigen, nämlich den Inhalt mit dem Alias abc. In einem geschäftlichen Umfeld könnten jedoch böse Zeitgenossen auf die Idee kommen, dieses Verhalten zu benutzen, um die Seite bei Google wegen duplicate Content bestrafen zu lassen.

Nun ist zum derzeitigen Zeitpunkt die hierarchiche URL-Erzeugung wegen Geschwindigkeitsproblemen sowieso nicht wirklich sinnvoll. Ausschalten würde man dieses Feature in der config.php:

$config[’use_hierarchy’] = false;

Dies macht leider keinen Sinn, wenn die Website schon mit der Struktur in Google erfasst ist, da man dann einen heiden Aufwand mit Umleitungen und ähnlichem hätte.

Danach kommt die eigentliche Arbeit, nämlich das Unterbinden aller unliebsamen URLs mittels .htaccess-Datei.

RewriteRule ^(.+)(.html)?$ index.php?page=$1 [QSA]

gegen tauschen:

RewriteRule ^([^/]+)\.html$ index.php?page=$1 [QSA]

Nun ist die Dateiendung zwingend .html und jegliche Unterordnerangaben führen zu einem Fehler 404.

Zusätzlich sollte nun noch die CMSms-Fehlerseite auch für die Fälle aktiviert werden, wenn die Anzeige der Seite nicht am Alias, sondern an einer Ordnerangabe oder einer Dateiendung scheitert. Dies geschieht auch wieder in der .htaccess-Datei:

ErrorDocument 404 /fehler-404.html

Der Alias fehler-404 darf natürlich nicht als Inhaltsseite existieren.

Eventuell wäre hierbei noch die Benutzung meines Tips aus dem nachfolgenden Thread sinnvoll:

http://forum.cmsmadesimple.org/index.ph ... 967.0.html

Kleiner Hinweis: Das CMS ist bei mir im Root-Verzeichnis meiner URL installiert, eventuell ergeben sich durch Installation in einen Unterordner (zB www.abc.de/cmsms) abweichende Lösungen.

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


Last edited by LeisureLarry on Wed Sep 10, 2008 5:15 pm, edited 1 time in total.

Top
   
 
Share On:
Share on Facebook Share on Twitter Share on Google+
 Post subject: Re: CMS ms 1.x und SEO
PostPosted: Thu Apr 17, 2008 5:48 pm 
Danke für diesen Hinweis.
Das dürfte dem ein oder anderen eine Menge Ärger ersparen.


Top
   
 
Share On:
Share on Facebook Share on Twitter Share on Google+
 Post subject: Re: CMS ms 1.x und SEO
PostPosted: Sat Apr 19, 2008 10:34 pm 
Gern geschehen, die Konkurrenz ist einem ja leider heutzutage selten wohlgesonnen ;-)


Top
   
 
Share On:
Share on Facebook Share on Twitter Share on Google+
 Post subject: Re: CMS ms 1.x und SEO
PostPosted: Wed May 14, 2008 8:56 am 
LeisureLarry wrote:
Der Alias fehler-404 darf natürlich nicht als Inhaltsseite existieren.


Interessant wäre an dieser Stelle, ob man irgend wie auf die in CMSms benutzerdefinierte Fehlerseite umleiten kann ...


Top
   
 
Share On:
Share on Facebook Share on Twitter Share on Google+
 Post subject: Re: CMS ms 1.x und SEO
PostPosted: Wed May 14, 2008 10:11 am 
Quote:
Der Alias fehler-404 darf natürlich nicht als Inhaltsseite existieren.


Wenn die Seite nicht existiert, kommt die Fehlerseite von CMSms, sofern dieses im Root der Domain eingerichtet wurde.


Top
   
 
Share On:
Share on Facebook Share on Twitter Share on Google+
 Post subject: Re: CMS ms 1.x und SEO
PostPosted: Wed May 14, 2008 10:51 am 
OK, hab ich die Frage vllt. etwas ungenau gestellt.

Ich rufe eine bestimmte Seite zum Beispiel mit www.beispiel.de/index.php?page=muster auf.

Die Query-Variable der Seite ist aber seite, richtig wäre also www.beispiel.de/index.php?seite=muster auf.

Im ersten Fall lande ich dann auf der Startseite - Folge Double Content.

Wie kann ich derartige URL-Manipulationen verhindern bzw. schon bei dem Versuch eine 404er Fehlerseite anzeigen lassen?


Top
   
 
Share On:
Share on Facebook Share on Twitter Share on Google+
 Post subject: Re: CMS ms 1.x und SEO
PostPosted: Wed May 14, 2008 11:54 am 
Offline
Forum Members
Forum Members

Joined: Wed Mar 26, 2008 1:49 am
Posts: 233
Location: Stuttgart / Germany
Ungefähr so:
Quote:
RewriteCond %{QUERY_STRING} !^$
RewriteCond %{QUERY_STRING} !^.*page=.*$
RewriteRule .* - [F,L]


Last edited by Wiedmann on Wed May 14, 2008 12:07 pm, edited 1 time in total.

Top
  Profile  
 
Share On:
Share on Facebook Share on Twitter Share on Google+
 Post subject: Re: CMS ms 1.x und SEO
PostPosted: Wed May 14, 2008 12:09 pm 
Kann man das noch etwas "allgemein gültiger" formulieren?

Wenn ich die rule richtig verstanden habe, stellt sie auf page ab ... und page ist ja nur eine Möglichkeit (von vielen).

Ich möchte als query var aber nur seite als Standard und mact für die Module zulassen  ::) ...


Top
   
 
Share On:
Share on Facebook Share on Twitter Share on Google+
 Post subject: Re: CMS ms 1.x und SEO
PostPosted: Wed May 14, 2008 12:35 pm 
Offline
Forum Members
Forum Members

Joined: Wed Mar 26, 2008 1:49 am
Posts: 233
Location: Stuttgart / Germany
Ungefähr so?
Code:
RewriteCond %{QUERY_STRING} !^$
RewriteCond %{QUERY_STRING} !(page|mact)=
RewriteRule ^index.php - [F,L]


- Regel greift nur, wenn man überhaupt die "index.php" aufruft
- Regel greift nur, wenn "index.php" überhaupt Parameter hat
- Regel greift nur, wenn weder der Parameter "page" noch "mact" vorhanden ist.

"page" muss man halt anpassen an das, was man in der config.php ($config['query_var']) benutzt.


Top
  Profile  
 
Share On:
Share on Facebook Share on Twitter Share on Google+
 Post subject: Re: CMS ms 1.x und SEO
PostPosted: Wed May 14, 2008 12:55 pm 
Hab es für mich gerade ein bisserl anders realisiert.

Code:
RewriteCond %{QUERY_STRING} !^$
RewriteCond %{QUERY_STRING} !^page=.*$
RewriteCond %{QUERY_STRING} !^mact=.*$
RewriteRule ^.*$ /error-404.html? [L,R=301]


Das hatte folgende Gründe. Die Regel soll greifen, sobald ein nicht leerer Query-String vorhanden ist und zwar egal ob die index.php angegeben wurde oder nicht. Man kann ja schließlich auch das index.php bei der URL komplett weglassen und direkt mit dem Query-String beginnen. Außerdem beginnen alle von CMSms generierten Query-Strings mit page bzw. mact und somit ist mir die Position innerhalb des Query-Strings wichtig. Zudem gefiel mir das [F,L] nicht, ich bevorzuge die Anzeige der CMSms-Fehlerseite.

Mein Dank an cyberman und Wiedman für die Problemmeldung und den Lösungsansatz.

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


Last edited by LeisureLarry on Wed May 14, 2008 1:07 pm, edited 1 time in total.

Top
   
 
Share On:
Share on Facebook Share on Twitter Share on Google+
 Post subject: Re: CMS ms 1.x und SEO
PostPosted: Wed May 14, 2008 1:45 pm 
Offline
Forum Members
Forum Members

Joined: Wed Mar 26, 2008 1:49 am
Posts: 233
Location: Stuttgart / Germany
Quote:
Die Regel soll greifen, sobald ein nicht leerer Query-String vorhanden ist und zwar egal ob die index.php angegeben wurde oder nicht.

Du benutzt statische Stylesheets?

Quote:
Man kann ja schließlich auch das index.php bei der URL komplett weglassen und direkt mit dem Query-String beginnen.

Deshalb greift die Regel trotzdem. Der Apache machcht ja dann voher einen internen Redirect, um das IndexDocument "Index.php" zu finden.

Quote:
Außerdem beginnen alle von CMSms generierten Query-Strings mit page bzw. mact und somit ist mir die Position innerhalb des Query-Strings wichtig.

Code:
RewriteCond %{QUERY_STRING} !^(page|mact)=


Quote:
Zudem gefiel mir das [F,L] nicht, ich bevorzuge die Anzeige der CMSms-Fehlerseite.

So sagst du dem UA aber, dass die angeforderte Ressource durchaus existiert, nur an einer anderen Location. Du musst einen internal Redirect machen:
Code:
RewriteRule ^.*$ /error-404.html? [L]

Und diese Seite muss dann den Statuscode 404 zum UA schicken.


Top
  Profile  
 
Share On:
Share on Facebook Share on Twitter Share on Google+
 Post subject: Re: CMS ms 1.x und SEO
PostPosted: Wed May 14, 2008 2:01 pm 
Wie im Eingangsposting dieses Beitrags geschrieben, existiert der Alias fehler-404 bei mir nicht. Dies führt dann zur Anzeige der internen CMSms-Fehlerseite, die bei mir den Statuscode 404 sendet. Wieso sage ich dem UA (und wofür steht UA) denn nun, daß und vor allem welche Ressource existiert? Zudem wo siehst Du den Vorteil in einem internen Redirect gegenüber einem externen, in diesem Fall?

Zu den anderen Sachen ja ich benutze eine Art von automatisch generierten statischen Stylesheets. Wie und wo wäre das relevant, damit ich das für die Zukunft im Hinterkopf behalte?

Zu der Sache mit der Angabe von index.php oder nicht, OK ist mir neu, aber ich lerne .htaccess auch nur durch Try and Error und bin noch relativ neu in der Materie.

Deine Kurzschreibweise für meine zwei Zeilen gefällt mir, ich war nur zu faul über die Auswirkungen von nicht (!) im Zusammenhang mit Oder (|) nachzudenken ;-)

Danke auf jeden Fall, ich lerne gerne dazu
LeisureLarry (interiete.net)


Top
   
 
Share On:
Share on Facebook Share on Twitter Share on Google+
 Post subject: Re: CMS ms 1.x und SEO
PostPosted: Wed May 14, 2008 2:05 pm 
OK, gerade noch einmal wo anders nachgesehen. Die dynamisch generierten Stylesheets werden über stylesheet.php?templateid=36... aufgerufen, die Angabe der index.php für unsere Regel ist also wie von Wiedmann geschrieben zwingend erforderlich, sonst klappt das mit den Stylesheets nicht mehr.


Top
   
 
Share On:
Share on Facebook Share on Twitter Share on Google+
 Post subject: Re: CMS ms 1.x und SEO
PostPosted: Wed May 14, 2008 2:20 pm 
Offline
Forum Members
Forum Members

Joined: Wed Mar 26, 2008 1:49 am
Posts: 233
Location: Stuttgart / Germany
Quote:
Wie im Eingangsposting dieses Beitrags geschrieben, existiert der Alias fehler-404 bei mir nicht. Dies führt dann zur Anzeige der internen CMSms-Fehlerseite, die bei mir den Statuscode 404 sendet. Wieso sage ich dem UA (und wofür steht UA) denn nun, daß und vor allem welche Ressource existiert? Zudem wo siehst Du den Vorteil in einem internen Redirect gegenüber einem externen, in diesem Fall?

UA steht für UserAgent. Also die Software/User/System welches die Ressource auf deinem Server anfordert.

Der Statuscode 301 bewirkt ja nicht nur eine Umleitung, sondern hat auch eine Bedeutung (gerade für Suchmaschinen und/oder Proxys/Caches):
In deinem Fall sagst du der Suchmaschine, dass "index.php?seite=muster" eine gültige Ressource ist (bleibt im Cache/Index), diese aber (ab jetzt) immer unter einer anderen URI zu erreichen ist. Und diese neue URI für die gütlige alte URI wird dann nicht gefunden (404). In dieser Konfiguration sollte man dann aber eher 403 setzten und nicht 404 (kann CMSMS aber nicht).

(Oder oders gesagt, der UA erfährt bei einem 301 nur, dass "/error-404.html" nicht gültig ist. Aber nicht, dass  "index.php?seite=muster" nicht gültig ist)

Bei einem internen Redirect wird dem UA direct gesagt, dass "index.php?seite=muster" keine gültige Ressource ist (fliegt aus dem Cace/Index).


Quote:
Die dynamisch generierten Stylesheets werden über stylesheet.php?templateid=36... aufgerufen,

Das meinte ich ;-)

BTW:
CMSMS erzeugt dann nachwievor noch selbst Double Content (Die Links zur Default Page). Falls jemand die MLE einsetzt, da gibt es dann einen Patch dagegen,


Last edited by Wiedmann on Wed May 14, 2008 2:41 pm, edited 1 time in total.

Top
  Profile  
 
Share On:
Share on Facebook Share on Twitter Share on Google+
 Post subject: Re: CMS ms 1.x und SEO
PostPosted: Wed May 14, 2008 2:43 pm 
Ok überzeugt, meine Angaben sehen nun wie folgt aus:

Code:
RewriteCond %{QUERY_STRING} !^$
RewriteCond %{QUERY_STRING} !^(page|mact)=
RewriteRule ^index.php /error-404.html? [L]


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.

Leider gibt es selbst ohne MLE immer noch doppelten Content:
Code:
/test.html
/index.php?page=test.html


Alle meine Versuche ne 301er Umleitung für Queries mit page-Angaben zu den pretty URLs funktionierten leider nicht. Falls da noch jemand ne Lösung für hat, wäre das echt klasse.

LeisureLarry (interiete.net)


Top
   
 
Share On:
Share on Facebook Share on Twitter Share on Google+
Display posts from previous:  Sort by  
Post new topic This topic is locked, you cannot edit posts or make further replies.  [ 29 posts ]  Go to page 1, 2  Next

All times are UTC


Who is online

Users browsing this forum: No registered users


You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot post attachments in this forum

Search for:
Jump to:  
cron
A2 Hosting