Duplicate Content bei verschiedenen html-Datei-Namen?

Zur Navigation

1 lizzy

Hallo liebes Forum,

Ich betreue -so gut ich es als ambitionierter Laie eben kann- einen xt-commerce Webshop für eine Freundin (xtc 3.04, SP1) mit Shopstat zur Generierung von sumafreundlichen URLs.

Nachdem wir vor wenigen Wochen relauncht haben und nun mit deutlich mehr gutem Content in Form von Ratgebern dabei sind, ist mir aufgefallen, dass viele (identische) Content-Seiten über verschiedene URLs aufzurufen sind.

Wer xtc bzw. Shopstat ein wenig kennt, der weiß, dass URLs von folgendem Typ erzeugt werden:

http://www.<shopname.de>/.../.../<html-Dateiname>:_:17.html

Relevant ist aber nur ':_:17.html', d.h. die Seite wird ebenfalls erreicht mit: http://www.<shopname.de>/:_:17.html

Dieser Umstand und die Namensgebung/interne Linkstruktur des Shops führen dazu, dass es für ein und diesselbe Seite mindestens 2 Adressen gibt, die wohl auch beide indexiert werden, z.B:

http://www.<shopname.de>/liefer-versand-infos:_:1.html
http://www.<shopname.de>/Lieferung-und-Versand:_:1.html

oder nur durch Groß-/Kleinschreibung unterschieden:

http://www.<shopname.de>/zahlungsarten:_:27.html
http://www.<shopname.de>/Zahlungsarten:_:27.html

So weit, so schlecht - ich glaube, es liegt eine Menge Arbeit vor mir...!?
Wenn ich alles bisher Gelesene richtig verstanden habe, muss mein Ziel doch heißen: Schleunigst für einheitliche (und kleingeschriebene) URLs sorgen und alte Dateien per 301 redirect auf die neuen umleiten, richtig oder?
Wie gefährlich ist mein Problem, wie würdet Ihr vorgehen, was zuerst?

Wer mal live gucken will, um zu verstehen:
http://www.kinderfahrradladen.de

Danke für Eure Hilfe
Lizzy

04.09.2007 12:46

2 Jörg

Hallo Lizzy,

wenn die Seiten bereits unter http://www.<shopname.de>/:_:17.html erreichbar sind, musst du nur noch die entsprechenden Links ändern, dass sie auf die von die definierte Standard-Version verweisen

Die Weiterleitungen sollten dann recht einfach zu bewerksteligen sein. Ich würde es mit dieser mod_rewrite Rule probieren:

RewriteEngine on

RewriteBase /

RewriteRule .+(:_:[0-9]+\.html)$ http://www.<shopname.de>/$1 [R=301]

04.09.2007 13:42 | geändert: 04.09.2007 13:43

3 lizzy

Hallo Jörg,

vielen Dank für Deine Antwort.

Irgendwie verstehe ich da aber was noch nicht richtig ...

Ja,
http://www.<shopname.de>/:_:17.html
liefert die selbe Seite wie z.B.
http://www.<shopname.de>/datenschutz:_:17.html oder
http://www.<shopname.de>/Daten-und-Verbraucherschutz:_:17.html oder auch
http://www.<shopname.de>/gjdsulghjdvwk:_:17.html.

Genau hier liegt das Problem. Im implementierten CMS bei xtcommerce vergibt man Titel für die jeweiligen Content-Seiten, der sich unterscheidet vom Namen der html-Datei, die man per ftp hochlädt. Das führt dazu, dass der gleiche Content über mindestens 2, manchmal sogar 3 URLs zu erreichen ist (siehe Verlinkung aus den Breadcrumbs z.B. unter http://www.kinderfahrradladen.de/liefer-versand-infos:_:1.html)

Wenn ich mich nun für eine Variante entscheide (am besten kleingeschrieben ...) dann muss ich Titel und Dateinamen jeder einzelnen Seite vereinheitlichen, wenn ich richtig verstanden habe.
Wenn es mir dann noch gelingt, das nur noch kleingeschriebene Dateinamen vom System generiert werden (ist, glaub' ich, machbar ...), dann sollte ich doch shop- bzw. linktechnisch auf der sicheren Seite sein, oder?

Es wäre dann also nur noch angezeigt, Google mitzuteilen, dass es z.B.
http://www.kinderfahrradladen.de/Lieferung-und-Versand:_:1.html
nicht mehr gibt, so dass es mittelfristig aus dem Index verschwindet, oder?

Und das ist mit Deiner benannten mod_rewrite Rule für alle Varianten zu bewerkstelligen? Kann ich kaum glauben, aber ich bin hier auch nicht wirklich fit - vielleicht magst Du mir nochmal auf die Sprünge helfen ...?

Danke und liebe Grüße
Lizzy

04.09.2007 14:34

4 Jörg

Ich hatte diesen Satz wohl missverstanden, dass du dich für die kurze Variante entschieden hast:

Relevant ist aber nur ':_:17.html', d.h. die Seite wird ebenfalls erreicht mit: http://www.<shopname.de>/:_:17.html

Die obige RewriteRule sollte alle Seiten wie gewünscht weiterleiten, wenn du dich für http://www.<shopname.de>/:_:17.html als Standard entscheidest. Wenn du dich für eine andere Variante entscheidest, musst du jede Seite einzeln weiterleiten

04.09.2007 14:52

5 lizzy

Ok, dank Dir, dann mach ich mich mal an die Arbeit ...!

Grüße
Lizzy

04.09.2007 14:59

6 lizzy

Hallo nochmal,
Hallo Jörg,

auch wenn mein Problem eher etwas für das xtc- oder shopstat-Forum ist, so möchte ich doch nochmal schüchtern hier anfragen, da ich dort noch keine Reaktion bekommen habe ...

Meine Zeilen für die Umleitung in der .htaccess lauten z.B.:

redirect permanent /name-alt:_:36.html http://www.domain.de/name-neu:_:36.html

Das klappt aber nur bedingt, weil die neue URL nun so ausschaut:
http://www.domain.de/name-neu:_:36.html?coID=36


Auch bei einer .htaccess-Anweisung der Art

redirect permanent /name-alt:_:36.html http://www.domain.de/name-neu:_:62.html

schaut die neue URL so aus:
http://www.domain.de/name-neu:_:62.html?coID=36

D.h. es wird die alte Seite (...36.html) angezeigt und die Umleitung wurde ausgehebelt.

Hat jemand eine Idee, wie ich die ID-Kennung am Ende unterdrücken kann bzw. an welcher Schraube ich drehen müsste?

Vielen Dank,
Lizzy

06.09.2007 12:41

7 Jörg

Da funkt möglicherweise eine RewriteRule dazwischen. Was steht denn sonst noch in der .htaccess?

06.09.2007 14:06

8 lizzy

Der Inhalt der .htaccess:


AuthType Basic
AuthName "Access for /test_shop" 
AuthUserFile /kunden/homepages/3/d172432945/htpasswd
require user ***
	
# $Id: .htaccess,v 1.5 2005/05/19 17:09:19 Administrator Exp $
#
# This is used with Apache WebServers
#
# For this to work, you must include the parameter 'Options' to
# the AllowOverride configuration
#
# Example:
#
#<Directory "/usr/local/apache/htdocs">
#   AllowOverride Options
#</Directory>
#
# 'All' with also work. (This configuration is in the
# apache/conf/httpd.conf file)
# The following makes adjustments to the SSL protocol for Internet
# Explorer browsers
<IfModule mod_setenvif.c>
  <IfDefine SSL>
    SetEnvIf User-Agent ".*MSIE.*" \
             nokeepalive ssl-unclean-shutdown \
             downgrade-1.0 force-response-1.0
  </IfDefine>
</IfModule>

# Fix certain PHP values
# (commented out by default to prevent errors occuring on certain
# servers)
#<IfModule mod_php4.c>
#  php_value session.use_trans_sid 0
#  php_value register_globals 1
#</IfModule>

#-- Call time pass reference error ?!
#php_flag  allow_call_time_pass_reference On

#-----------------------------------------
#- SEO Hartmut König
#-----------------------------------------
#-- ! Comment this line, if you get an ERROR 500 !
#Options +FollowSymlinks

# http://httpd.apache.org/docs/misc/rewriteguide.html
RewriteEngine on

#-- Sitemap
RewriteRule ^sitemap(.*)\.html$ /shop_content.php?coID=8 [qsappend,L]

##-- Kategorien
RewriteCond %{REQUEST_URI} (.*):::([_0-9]+):([_0-9]+)\.html$
RewriteRule (.*):::([_0-9]+):([_0-9]+)\.html$ /index.php?cPath=$2&page=$3 [qsappend,L]
RewriteCond %{REQUEST_URI} (.*):::([_0-9]+)\.html$
RewriteRule (.*):::([_0-9]+)\.html$ /index.php?cPath=$2 [qsappend,L]

##-- Produkte
RewriteRule (.*)::(.+)\.html$ /product_info.php?products_id=$2 [qsappend,L]

##-- Content
RewriteRule (.*):_:([0-9]+)\.html$ /shop_content.php?coID=$2 [qsappend,L]

##-- Manufacturers
RewriteCond %{REQUEST_URI} (.*):.:([_0-9]+):([_0-9]+)\.html$
RewriteRule (.*):.:([_0-9]+):([_0-9]+)\.html$ /index.php?manufacturers_id=$2&page=$3 [qsappend,L]
RewriteCond %{REQUEST_URI} (.*):.:([_0-9]+)\.html$
RewriteRule (.*):.:([0-9]+)\.html$ /index.php?manufacturers_id=$2 [qsappend,L]

##-- Fehlerseiten auf die Sitemap lotsen
ErrorDocument 400 /sitemap.html?error=400
ErrorDocument 401 /sitemap.html?error=401
ErrorDocument 402 /sitemap.html?error=402
ErrorDocument 403 /sitemap.html?error=403
ErrorDocument 404 /sitemap.html?error=404
ErrorDocument 500 /sitemap.html?error=500

[Edit Jörg: Code in Codeblock eingefügt]

06.09.2007 14:16 | geändert von Jörg: 06.09.2007 15:47

9 Jörg

Und wo fügst die die Redirects ein - ganz oben oder unten? Im zweiten Fall würde ich sie testweise nach ganz oben schieben.

06.09.2007 15:53

10 lizzy

Hallo Jörg,

ich hatte sie ganz unten eingefügt, aber auch ganz oben führt es zum gleichen Ergebnis ...

Gruß Lizzy

06.09.2007 16:05