Du befindest Dich im Archiv vom ABAKUS Online Marketing Forum. Hier kannst Du Dich für das Forum mit den aktuellen Beiträgen registrieren.

Duplicte Content - Suche verzweifelt nach mod_rewrite Rule

Hier können Sie Ihre Fragen zum Thema Suchmaschinenoptimierung (SEO) / Positionierung stellen
Neues Thema Antworten
thomas_x3
PostRank 5
PostRank 5
Beiträge: 214
Registriert: 09.03.2012, 08:41

Beitrag von thomas_x3 » 02.04.2012, 14:22

Sorry, ich weiß, dass das hier thematisch vielleicht nicht so reinpasst, aber ich finde einfach nirgendwo eine Lösung für mein Problem. :-?

Google hat meine Seite zum Teil doppelt indexiert, einmal die einzelnen Seiten mit- und einmal ohne .html Endung, das ist wohl sehr schlecht. Ich möchte alle Seiten die nicht auf .html enden per 301 auf die gleichnamige Seite mit .html Endung umleiten, aber ich finde einfach nicht raus wie die mod_rewrite Regel dafür lautet... :(

Anzeige von ABAKUS

von Anzeige von ABAKUS »

Content Erstellung von ABAKUS Internet Marketing
Ihre Vorteile:
  • einzigartige Texte
  • suchmaschinenoptimierte Inhalte
  • eine sinnvolle Content-Strategie
  • Beratung und Umsetzung
Jetzt anfragen: 0511 / 300325-0

chris21
PostRank 9
PostRank 9
Beiträge: 2758
Registriert: 10.04.2005, 18:17

Beitrag von chris21 » 02.04.2012, 14:29

Code: Alles auswählen

RewriteCond %{REQUEST_URI} !^/(.*)/$
RewriteCond %{REQUEST_URI} !^/(.+)\.html$
RewriteRule ^(.*)$ http://www.spotcatch.net/$1.html [R=301,L]
Die erste Kondition prüft, ob es ein Verzeichnis ist (z.B. spotcatch***/maingallery/laenderstaedte/ ), da hier ja kein .html angehängt werden soll.

Die zweite prüft, ob für Nicht-Verzeichnisse das .html fehlt.

Ist dies der Fall, wird die URL auf die Version mit .html umgeleitet.

PS: Das richtige Unterforum für solche Themen heißt: Weiterleitungen und Mod_rewrite

Irgendein armer Mod wird es für Dich vll. freundlicherweise verschieben.
Zuletzt geändert von chris21 am 04.04.2012, 12:02, insgesamt 2-mal geändert.

thomas_x3
PostRank 5
PostRank 5
Beiträge: 214
Registriert: 09.03.2012, 08:41

Beitrag von thomas_x3 » 02.04.2012, 14:41

Danke erstmal!
chris21 hat geschrieben:https://www.spotcatch.net/maingallery/laenderstaedte/ ), da hier ja kein .html angehängt werden soll.
Warum nicht?

Leider haut da aber sowieso was nicht hin. Wenn ich auf Reiseberichte geh, dann werde ich auf spotcatch.net/index.php.html umgeleitet?

/edit
Ich glaub bei der von dir definierten Regel wären Unterseiten ausgeschlossen, versteh ich das richtig? Grundsätzlich sind ja leider alle Unterseiten von dem Problem betroffen.

chris21 hat geschrieben: PS: Das richtige Unterforum für solche Themen heißt: Weiterleitungen und Mod_rewrite

Irgendein armer Mod wird es für Dich vll. freundlicherweise verschieben.
Danke für den Hinweis!
Zuletzt geändert von thomas_x3 am 02.04.2012, 14:55, insgesamt 2-mal geändert.

Anzeige von ABAKUS

von Anzeige von ABAKUS »

SEO Consulting bei ABAKUS Internet Marketing
Erfahrung seit 2002
  • persönliche Betreuung
  • individuelle Beratung
  • kompetente Umsetzung

Jetzt anfragen: 0511 / 300325-0.


thomas_x3
PostRank 5
PostRank 5
Beiträge: 214
Registriert: 09.03.2012, 08:41

Beitrag von thomas_x3 » 02.04.2012, 14:47

sorry, doppelpost

chris21
PostRank 9
PostRank 9
Beiträge: 2758
Registriert: 10.04.2005, 18:17

Beitrag von chris21 » 02.04.2012, 15:46

Ah, die index.php war nicht bedacht.

Zudem scheint bei den Verzeichnissen auch ein Problem zu bestehen.



Da scheint das ganze System murks zu sein.

die /laenderstaedte/ kann ich unter

/laenderstaedte
/laenderstaedte/
und
/laenderstaedte.html

erreichen.

Dadurch erbit sich aber ein Problem, welches sich auch nicht mit mod_rewrite abfangen lassen kann.

Woher soll man wissen, ob nun die

/laenderstaedte auf

/laenderstaedte/

oder auf

/laenderstaedte.html

umgeleitet werden soll?

Ich würde daher empfehlen, erstmal das CMS so zu verbessern, dass hier nur noch eine URL glültig ist und dann kann Regeln überlegen, wie die falschen auf die richtigen leiten.

Falls Du überall auf die .html leiten willst, also auch bei Verzeichnissen:

Code: Alles auswählen

RewriteCond %{REQUEST_URI} ^/(.*)/$
RewriteRule ^(.*)/$ http://www.spotcatch.net/$1.html [R=301,L]
RewriteCond %{REQUEST_URI} !^/(.+)\.php$
RewriteCond %{REQUEST_URI} !^/(.+)\.html$
RewriteRule ^(.*)$ http://www.spotcatch.net/$1.html [R=301,L]

Melegrian
PostRank 10
PostRank 10
Beiträge: 3170
Registriert: 30.01.2005, 12:36

Beitrag von Melegrian » 02.04.2012, 16:07

Dachte auch gerade, dass sich da noch eine Regel in der htaccess befindet, die es erst ermöglicht, dass sich /reiseberichte und /reiseberichte.html aufrufen lassen.

800XE
PostRank 10
PostRank 10
Beiträge: 5223
Registriert: 02.12.2004, 03:03

Beitrag von 800XE » 02.04.2012, 19:01

chris21 hat geschrieben:Ich würde daher empfehlen, erstmal das CMS so zu verbessern, dass hier nur noch eine URL glültig ist
nur mal so generel

Es wird immer gerne gesagt ".html" braucht man nicht
dadurch hat man aber das Problem das man nicht gleich weiss ob es jetzt
/name(Ordner)
/name.datei
ist

also, braucht man ".html" vielelicht doch?
weil
wenn man es nicht normal macht
braucht man sich nicht wndern wen man verrückt wird

thomas_x3
PostRank 5
PostRank 5
Beiträge: 214
Registriert: 09.03.2012, 08:41

Beitrag von thomas_x3 » 03.04.2012, 07:37

chris21 hat geschrieben: Da scheint das ganze System murks zu sein.

die /laenderstaedte/ kann ich unter

/laenderstaedte
/laenderstaedte/
und
/laenderstaedte.html

erreichen.
Ja ich weiß, total blöd :(
chris21 hat geschrieben: Ich würde daher empfehlen, erstmal das CMS so zu verbessern, dass hier nur noch eine URL glültig ist und dann kann Regeln überlegen, wie die falschen auf die richtigen leiten.
hmm, ok. Ich hab' jetzt leider nur überhaupt keinen Dunst, wo in Joomla ich da was drehen könnte? Zu meiner Schande muss ich noch auch zugeben, dass ich derzeit noch auf 1.5 bin...
chris21 hat geschrieben: Falls Du überall auf die .html leiten willst, also auch bei Verzeichnissen:
Das wär zumindest mal ne erste Notlösung, oder? Besser als so wie's jetzt ist, oder?
Melegrian hat geschrieben:Dachte auch gerade, dass sich da noch eine Regel in der htaccess befindet, die es erst ermöglicht, dass sich /reiseberichte und /reiseberichte.html aufrufen lassen.
Ich glaube die Hauptursache für den ganzen Murks ist, dass ich in Joomla die Option "Dateiendung an URL fügen" deaktiviert hatte, als die Seite schon seit längerer Zeit am laufen war. Einer der vielen SEO Tipps riet dazu, keine Endungen zu verwenden (html, php usw.) also habe ich ohne groß nachzudenken, das einfach deaktiviert. Da sich dadurch aber ein anderes Problem ergab, habe ich nach ein paar Tagen wieder zurückgestellt. Ich glaub deshalb ist nun jede Seite auch ohne .html Suffix erreichbar. In dieser Zeit hat Google natürlich längst ein paarmal vorbei geschaut und nun ist einiges doppelt im Index...

Verdammt, das ist echt blöd. Wie könnte ich dem ganzen Herr werden, ich hab' leider garkeine Idee... :cry:

Hier übrigens der Inhalt meiner htaccess

Code: Alles auswählen

RewriteCond %{HTTP_HOST} !^(www|img|js|css)\.spotcatch\.net$ [NC]
RewriteRule ^(.*)$ http://www.spotcatch.net/ [R=301,L]
RewriteRule ^cms(.*)$ / [R=301,L]
RewriteRule ^home-mainmenu-1\.html$ / [R=301,L]
RewriteRule ^ueber-mich/64.html$ /ueber-mich.html [R=301,L]
RewriteRule ^component/content/frontpage$ / [R=301,L]
RewriteRule ^component/content/frontpage\.html$ / [R=301,L]
RewriteRule ^reiseberichte/236-malaysien.html$ http://www.spotcatch.net/reiseberichte/236-malaysia.html [R=301,L]
RewriteRule ^reiseberichte/236-malaysien-reiseblog.html$ http://www.spotcatch.net/reiseberichte/236-malaysia.html [R=301,L]

RewriteCond %{THE_REQUEST} ^[A-Z]{3,9}\ /index\.php\ HTTP/
RewriteRule ^index\.php$ http://%{HTTP_HOST}/ [R=301,L,NC]

RewriteCond %{QUERY_STRING} option=com_content&view=frontpage&Itemid=26$
RewriteRule ^(.*)$ http://www.spotcatch.net/maingallery.html? [R=301,L,NC]

RewriteCond %{REQUEST_URI} !^/component/content/article/231.html$
RewriteRule (.*)231\.html$ /component/content/article/231.html [R=301,L,NC]
Wär wirklich sehr dankbar für eure Hilfe.

/edit
chris21 hat geschrieben:

Code: Alles auswählen

RewriteCond %{REQUEST_URI} ^/(.*)/$
RewriteRule ^(.*)/$ http://www.spotcatch.net/$1.html [R=301,L]
RewriteCond %{REQUEST_URI} !^/(.+)\.php$
RewriteCond %{REQUEST_URI} !^/(.+)\.html$
RewriteRule ^(.*)$ http://www.spotcatch.net/$1.html [R=301,L]
Führt übrigens zu -> spotcatch.net/.html

thomas_x3
PostRank 5
PostRank 5
Beiträge: 214
Registriert: 09.03.2012, 08:41

Beitrag von thomas_x3 » 04.04.2012, 07:52

Keine ne Idee? :-/

CyberNibbler
PostRank 5
PostRank 5
Beiträge: 283
Registriert: 19.08.2008, 16:57
Wohnort: Berlin

Beitrag von CyberNibbler » 04.04.2012, 07:58

Vielleicht wäre es besser, wenn du dich mit dem Problem in einem Joomla-Forum meldest.

thomas_x3
PostRank 5
PostRank 5
Beiträge: 214
Registriert: 09.03.2012, 08:41

Beitrag von thomas_x3 » 04.04.2012, 08:04

Hab' ich schon versucht, bisher leider vergebens. Aber ich werd' dran bleiben.

Aber ich denke wenn die mod_rewrite Rule erstmal läuft, dann wär das eh keine so schlechte Lösung, oder? Oder ist es wichtig, dass z.b. die Kategorie "Länder Städte" als Verzeichnis dargestellt wird? Ich versteh da ehrlich gesagt die Zusammenhänge etwas zu wenig...

chris21
PostRank 9
PostRank 9
Beiträge: 2758
Registriert: 10.04.2005, 18:17

Beitrag von chris21 » 04.04.2012, 12:06

/edit
chris21 hat Folgendes geschrieben:

Code:

RewriteCond %{REQUEST_URI} ^/(.*)/$
RewriteRule ^(.*)/$ https://www.spotcatch.net/$1.html [R=301,L]
RewriteCond %{REQUEST_URI} !^/(.+)\.php$
RewriteCond %{REQUEST_URI} !^/(.+)\.html$
RewriteRule ^(.*)$ https://www.spotcatch.net/$1.html [R=301,L]

Führt übrigens zu -> spotcatch.net/.html
Komisch.

Dann probier mal:

Code: Alles auswählen

RewriteCond %{REQUEST_URI} ^/(.+)/$
RewriteRule ^(.*)$ http://www.spotcatch.net/%1.html [R=301,L]
RewriteCond %{REQUEST_URI} !^/(.+)\.php$
RewriteCond %{REQUEST_URI} !^/(.+)\.html$
RewriteRule ^(.*)$ http://www.spotcatch.net/$1.html [R=301,L]
Den Block hinter der zweiten Zeile

Code: Alles auswählen

RewriteRule ^(.*)$ http://www.spotcatch.net/ [R=301,L] 
in Deine .htaccess einfügen.

PS: Link oben wie gewünscht maskiert.

thomas_x3
PostRank 5
PostRank 5
Beiträge: 214
Registriert: 09.03.2012, 08:41

Beitrag von thomas_x3 » 04.04.2012, 12:56

chris21 hat geschrieben: Link oben wie gewünscht maskiert.
Danke :wink:

Das Ganze scheint sich grad zu einer never ending Story zu entwickeln, hat aber den Vorteil, dass ich mit mod_rewrite grad warm werde. ^^

Ich glaub der Grund warum die Regel von dir - chris21 - noch nicht funktioniert ist, weil noch eine Zeile fehlt:

Code: Alles auswählen

RewriteCond %{REQUEST_URI} ^/(.*)/$
RewriteRule ^(.*)/$ http://www.spotcatch.net/$1.html [R=301,L]
-> RewriteCond %{REQUEST_URI} ^/.+
RewriteCond %{REQUEST_URI} !^/(.+)\.php$
RewriteCond %{REQUEST_URI} !^/(.+)\.html$
RewriteRule ^(.*)$ http://www.spotcatch.net/$1.html [R=301,L] 
Diese eine Zeile sollte, wenn ich das nun endlich richtig durchblickt habe, zusätzlich die Bedingung stellen, dass hinter der root Domain was kommen muss, was bei www.spotcatch.net ja nicht zutrifft. Das funktioniert nun auch soweit, das Umschreiben funktioniert.
Leider ist es trotzdem nicht verwendbar, da es mir nun alle Styles zerschiesst. :evil: ^^

Naja irgendwie ne spannende Sache, deshalb habe ich weiter dran rumgespielt und die o.g. Regeln wie folgt gepimpt:

Code: Alles auswählen

RewriteCond %{REQUEST_URI} ^/(.*)/$
RewriteRule ^(.*)/$ http://www.spotcatch.net/$1.html [R=301,L]
RewriteCond %{REQUEST_URI} ^/.+
RewriteCond %{REQUEST_URI} !^/(.+)\.css$
RewriteCond %{REQUEST_URI} !^/(.+)\.jpg$
RewriteCond %{REQUEST_URI} !^/(.+)\.js$
RewriteCond %{REQUEST_URI} !^/(.+)\.png$
RewriteCond %{REQUEST_URI} !^/(.+)\.xml$
RewriteCond %{REQUEST_URI} !^/(.+)\.swf$
RewriteCond %{REQUEST_URI} !^/(.+)\.php$
RewriteCond %{REQUEST_URI} !^/(.+)\.html$
RewriteRule ^(.*)$ http://www.spotcatch.net/$1.html [R=301,L]
Das ist schon besser, nun sieht die Seite halbwegs so aus wie sie sollte.
Trotzdem ist auch das nicht verwendbar, da die Flash Elemente auf der Seite noch immer nicht geladen werden, und, eigentlich noch schlimmer, die Performance ist mit diesen Regeln unter aller Sau.

0X

chris21
PostRank 9
PostRank 9
Beiträge: 2758
Registriert: 10.04.2005, 18:17

Beitrag von chris21 » 04.04.2012, 13:04

Mit mod_rewrite warm werden hilft immer:

Nochmal als Vereinfachung und wichtiges Wissen zu Regex Regeln: ein .* bedeutet: kein oder beliebige Zeichenkette. Ein .+ bedeutet: beliebige Zeichenkette, aber mindestens ein Zeichen.

Daher hatte ich im Post über Deinen eine Alternative drin, die Du anscheinend noch nicht getestet hast.

Diese Alternative bringe ich mal mit Deinen Änderungen zusammen und verbessere nebenbei die Performance durch Zusammenlegen einiger RewriteCond:

Code: Alles auswählen

RewriteCond %{REQUEST_URI} ^/(.+)/$
RewriteRule ^(.+)/$ http://www.spotcatch.net/%1.html [R=301,L]
RewriteCond %{REQUEST_URI} !^/(.+)\.(css|jpg|js|png|xml|swf|php|fla|html|txt)$
RewriteRule ^(.+)$ http://www.spotcatch.net/$1.html [R=301,L]

Antworten
  • Vergleichbare Themen
    Antworten
    Zugriffe
    Letzter Beitrag