Seite 1 von 1

Verfasst: 04.09.2007, 17:01
von arktikeye
Hallo, toller Beitrag :)

hab nur noch ein Problem beim weiterleiten von einzelnen Seiten. Hier meine .htaccess.

Code: Alles auswählen

ErrorDocument 404 /index.php
ErrorDocument 403 /index.php
ErrorDocument 401 /index.php
ErrorDocument 500 /index.php

Options +FollowSymLinks
RewriteEngine On
RewriteBase /

RewriteCond %{HTTP_HOST} !^www\.domain\.de [NC] [OR]
RewriteCond %{HTTP_HOST} !^sub1\.domain\.de [NC]
RewriteCond %{HTTP_HOST} !^sub2\.domain\.de [NC]
RewriteCond %{HTTP_HOST} !^sub3\.domain\.de [NC]
RewriteRule ^(.*)$ http://www.domain.de/$1 [L,R=301]

RewriteCond %{HTTP_HOST} \.?sub1.domain.de$
RewriteRule .* http://www.domain.de/sub1.php [L,R=301]

RewriteCond %{HTTP_HOST} \.?sub2.domain.de$
RewriteRule .* http://www.domain.de/sub2.php [L,R=301]

RewriteCond %{HTTP_HOST} \.?sub3.domain.de$
RewriteRule .* http://www.domain.de/sub3.html [L,R=301]

RewriteRule ^(.*)-p-(.*).html$ product_info.php?products_id=$2&%{QUERY_STRING}
RewriteRule ^(.*)-c-(.*).html$ index.php?cPath=$2&%{QUERY_STRING}
RewriteRule ^(.*)-m-(.*).html$ index.php?manufacturers_id=$2&%{QUERY_STRING}
Wie man sieht werden aus den dynamischen URLS statische erzeugt. Leider sind in Google noch alte URLs vorhanden. Diese möchte ich gern mit 301 auf die neuen URLs forwarden.

also Beispiel:

https://www.domaind.de/umständliche.php ... =variablen soll zu https://www.domain.de/einfache-url.html werden.

Dann noch etwas. Laut Webalizer habe ich viele 302-Code Antworten, und keine 301. Kann es sein das die letzten drei Rewriterules nicht ganz korrekt sind? Macht das irgendetwas aus wenns ein 302 Code ist? Rankingtechnisch muss ich sagen ists ok.

danke schonmal für Eure Hilfe.

Andi

PS: Ja, es ist ein osCommerce Shop :)

Verfasst:
von

Hochwertiger Linkaufbau bei ABAKUS:
  • Google-konformer Linkaufbau
  • nachhaltiges Ranking
  • Linkbuilding Angebote zu fairen Preisen
  • internationale Backlinks
Wir bieten Beratung und Umsetzung.
Jetzt anfragen: 0511 / 300325-0

Verfasst: 04.09.2007, 21:33
von twitch
um nen 301 zu erreich auch hinter die letzten 3 Rules [L,R=301] schreiben.

versuch das mal
RewriteRule ^(.*)-p-(.*)\.html$ product_info.php?products_id=$1&%{QUERY_STRING}

so ganz schnall ichs leider net...
mit
RewriteCond %{HTTP_HOST} !^www\.domain\.de [NC] [OR]
RewriteCond %{HTTP_HOST} !^sub1\.domain\.de [NC]
RewriteCond %{HTTP_HOST} !^sub2\.domain\.de [NC]
RewriteCond %{HTTP_HOST} !^sub3\.domain\.de [NC]
RewriteRule ^(.*)$ https://www.domain.de/$1 [L,R=301]

leitest du doch alles auf die Domain um
danach kommste mit der Rule

RewriteCond %{HTTP_HOST} \.?sub3.domain.de$
RewriteRule .* https://www.domain.de/sub3.html [L,R=301]

.. ist das nicht zu spät, da ja schon die erste Regel gewirkt hat?
Funktioniert das überhaupt?

Verfasst: 04.09.2007, 22:11
von chris21
um nen 301 zu erreich auch hinter die letzten 3 Rules [L,R=301] schreiben.
Glaube kaum, dass Du, artikeleye, in den letzten drei Zeilen einen sog. external redirect erreichen willst: schließlich willst Du ja, dass die irgendwas-p-irgendwas.html stehen bleibt und der Apache nur intern den Inhalt der product_info.php mit Variablen raussucht und wiedergibt. Also hier kein 301 einfügen. Extern betrachtet hast Du hier auch keinen 302 Code, teste mal eine der Unterseiten z.B. mit www.web-sniffer.net oder einer Firefox Extension, die Dir die Header einer Datei anzeigen kann, z.b. der Web Developer Toolbar.

Allerdings: dieses %{QUERY_STRING} in Deinen letzten drei Zeilen checke ich auch noch nicht: was soll das denn bedeuten/erreichen?

Das zweite Problem, sprich das Umleiten der alten URLs, die noch bei Google drin sind, ist etwas komplizierter und erfordert eventuell einen Trick.

Möglich wäre z.B., dass Du eine gefakte weitere Variable einführst (rw=ja), d.h., Du fragst ab, ob https://www.domaind.de/umständliche.php ... =variablen ohne rw=ja aufgerufen wird, lenkst dann per 301 auf www.domaind.de/einfache-url.html, die wiederum intern auf https://www.domaind.de/umständliche.php ... blen&rw=ja lenkt.

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

Verfasst: 05.09.2007, 14:38
von arktikeye
Oh mann, erstmal dickes Sorry, dass ich heut nochmal das selbe gepostet hab, ich hab den Beitrag nicht mehr gefunden :/ Sorry (Siehe gepinntest Topic) (bereits selber gelöscht das jeweilige Posting)

Stimmt, die letzten drei Zeilen leiten intern weiter, mit Websniffer habe ich einen 200er erhalten. Es ist möglich das die 302er durch die Error-Dokumente und die alte Subdomain Rule erzeugt worden sind, speziell über die Subdomains gibt/gab es massiv Zugriffe.

Das Queri String bzw diese drei Zeilen, sind Teil eines Modules für den Shop, welche die Standard URLs umbaut zu *.html Seiten mit Produktnamen als Dateiname. Ich nehme an der String liest einfach nur die Datenbankabfrage aus, welche das Modul erledigt und baut dann entsprechend die URLs um.

Zum 2. Problem: Teilweise sind die URLs im Index auch vollkommen falsch und bekommen beim aufrufen auch teilweise eine 404 Ergebnissseite (die als Coderückgabe Übrigens dann 200 hat :() Da ich aber weiss, wohin es gehen soll mit den URLs bzw wo ich es gern hin haben möchte, wollte ich diese einfach "manuell" weiterleiten, ... sind nur ~300 Stück ;) ... Unter anderem kommen die zu Stande weil ich Umlaute in einigen URLs habe und diese mal als UTF-8 und mal mit lateinischen Schriftsatz dargestellt werden, ist wohl von User-Agent zu User-Agent (auch Bots) unterschiedlich. Nun werde ich diese URLs einfach mit ae, oe, ue versehen und wollte die bereits geIndexten Seiten umleiten da diese sonst nur eine "404" Seite erhalten würden.

@twitch, laut des 24 Seiten Topics in diesen Forenteil werden die angegeben Subdomains von der Regel ausgeschlossen. Da ich diese dann aber auf Unterseiten meines Shops leiten lassen will, kommen die drei Regeln erst nach den ersten "Satz". Funktionieren tuts jedenfalls.

Verfasst: 06.09.2007, 19:30
von wolli
ErrorDocument 404 /index.php
ErrorDocument 403 /index.php
ErrorDocument 401 /index.php
ErrorDocument 500 /index.php

erzeugt doppelter content
Das solltest du umgehend ändern

Verfasst: 07.09.2007, 10:05
von arktikeye
Hallo Leute, kurzer Zwischenbericht :)

Code: Alles auswählen

Redirect permanent /index.php/cPath/123 http://www.domain.de/seite-c-123.html 
und

Code: Alles auswählen

Redirect permanent /seite-xyz.html http://www.domain.de/neue-seite-xyz.html 
funktioniert schonmal. Mit Websniffer erhalte ich einen 301er Code. Nun bleiben nur noch einige URLs mit Variablen welche im Google Index sind. Leider kann ich diese mit der o.a. Regel nicht Weiterleiten/Umschreiben. Es passiert gar nix wenn ich bspw.

Code: Alles auswählen

Redirect permanent /product_info.php?products_id=123 http://www.domain.de/seite-p-123.html 
angebe. Die URL wird nicht weitergeleitet oder umgeschrieben. Irgend jemand eine Idee wie ich diese alten URLs nun aus dem Index kriege und die neuen Spidern lassen kann?

... Die Error Pages mach ich nun. Erzeugt es nur DC weil ich alle Errors auf index.php leite, oder ist an diesem Code etwas falsch?

Verfasst: 07.09.2007, 13:22
von chris21
Query Strings können mit mod_alias nicht umgeleitet werden. Daher hatte ich weiter oben schon vorgeschlagen, eine Umleitung über mod_rewrite zu konstruieren und auf den Trick einer weiteren Variable zurückzugreifen.

Das Problem: würdest Du per 301 eine einfache Umleitung von

/product_info.php?products_id=123

auf

/seite-p-123.html schalten, würde letztere "virtuelle" Datei wiederum intern auf

/product_info.php?products_id=123

umgeleitet werden und so eine Endlosschleife entstehen.

Daher musst die seite-p-123.html intern z.B. auf

/product_info.php?products_id=123&rw=ja umleiten

Dann:

Code: Alles auswählen

RewriteCond %{QUERY_STRING} ^products_id=([0-9]+)$
RewriteRule ^(.*) http://www.domain.tld/seite-p-%1.html? [L,R=301]

RewriteRule ^seite-p-(.*).html$ product_info.php?products_id=$2&rw=ja