Zur Navigation

301 Weiterleitung [24]

231 Jörg Kruse

Meinst du mit umleiten Weiterleiten oder Umschreiben?

Eine Weiterleitung kannst du einfach mit Redirect permanent umsetzen

Redirect permanent /home/ http://www.domain.de/

28.08.2007 20:22

232 Gustafsson

Jo, passt - danke ;-)

gruß uwe

29.08.2007 08:38

233 philip (Gast)

Hallo Leutz,
ich habe hier wirklich viele seiten durchgelesen (nicht alle) aber komme immer noch nicht auf die Lösung meines Problemes:

Ich habe meinen OnlineShop released, vorher lag der alte shop in /catalog/, nun liegt der neue Shop, so wie es sich gehört, im Grundverzeichnis.

Es ist nicht so das die alten Seiten weiter verfügbar sind, sondern es ist neuer content der angezeigt wird.

Ich möchte das wenn irgendjemand irgendwo auf irgendeinen Link zu mir klickt der auf die alte adresse also /catalog/irgendwasirgendwas/irgendwas.htm zeigt (also hauptsächlich alle links bei google) automatisch auf www.bongobong.de umgeleitet wird, hierbei soll nicht der teil hinter "/catalog/" hinter www.bongobong.de/ geschrieben werden, sondern es soll NUR auf www.bongobong.de redirected werden.

Redirect permanent /catalog/ http://www.bongobong.de/

verursacht das der Teil hinter /catalog/ hinter www.bongobong.de/ geschrieben wird.

RewriteEngine On

RewriteBase /
^catalog/(.*)\.html$ http://www.bongobong.de/ [R=301,L]

verursacht genauso das der Teil hinter /catalog/ auch hinter www.bongobong.de geschrieben wird.

Was kann ich also machen mit jeder link der irgendwie was mit /catalog/ enthält NUR auf http://www.bongobong.de gelenkt wird?

06.11.2007 19:33

234 Jörg Kruse

Hallo philip,

Zitat von philip
RewriteEngine On

RewriteBase /
^catalog/(.*)\.html$ http://www.bongobong.de/ [R=301,L]

verursacht genauso das der Teil hinter /catalog/ auch hinter www.bongobong.de geschrieben wird.

Das gibt diese Rule allerdings nicht her: hier sollte jede Seite, auf die das Muster passt, auf die Starseite http://www.bongobong.de/ weitergeleitet werden. Hast du die Redirect Anweisung oberhalb rausgenommen?

06.11.2007 20:14

235 philip (Gast)

hi jörg,
vielen dank für die schnelle antwort.

Ja klar hab immer nur eine Variante in der .htaccess benutzt, zur Zeit die obere, also den permanent redirect.

Ich meine rein von der Usabilty ist es ja in ordnung weil bei einem 404er eine Art sitemap angezeigt wird und jeder der bei google klickt auch letztendlich auf der seite landet, aber von SUMA kriterien her sieht das doch folgendermaßen aus: Der robot scannt die site, ruft die alten links ab, kriegt die message 301 ist permanent redirected zu entsprechenden link und dieser entsprechende link liefert aber ein 404er und das wirkt sich mit Sicherheit negativ auf die zukünftige listung aus.

Die alten Seiten kann ich nicht Sinnhaft redirecten, es würde mir reichen wenn alles auf die Startseite www.bongobong.de/index.php geleitet wird, aber wie bereits gesagt schreibt der redirect den Teil der URL hinter /catalog/ hinter die redirect adresse, sprich einen absoluten redirect scheint es wohl nicht zu geben.... klickt jemand auf einen alten link wie z.B. www.bongobong.de/catalog/product_info.php?products_id=11 landet er auf www.bongobong.de/product_info.php?products_id=11 und nicht einfach auf www.bongobong.de also www.bongobong.de/index.php...

Also da scheint es keine passende Lösung zu geben? Man-o-man, kann mir gut vorstellen das viele in der praxis nicht all ihre alten Seiten auf ein Pendant der neuen Seite weiterleiten können........ vielen dank bis hierhin, vielleicht gibt es ja doch noch eine lösung..

mfg
philip

07.11.2007 13:45

236 Jörg Kruse

Also da scheint es keine passende Lösung zu geben?

Doch, die von dir genannte Lösung ist schon passend. Nur scheint da noch irgendeine andere Direktive oder Rule reinzufunken. Deswegen meine Frage, ob du die Zeile mit dem REdirect auch rausgenommen hast. Wenn ja, müsstest du mal schauen, was sonst die genannte Weiterleitung verursacht - hier käme auch eine .htaccess des Verzeichnis catalog in Betracht. Die obige Rule leitet als solche jedenfalls immer auf die Startseite.

07.11.2007 13:54

237 Philip (Gast)

Ja der shop läuft mit der software xtcommerce und wegen suma urls habe ich auch entsprechende RewriteRules eingebaut.

Hier mal meine .htaccess-Datei aus dem root-verzeichnis:


Redirect 301 /catalog/ http://www.bongobong.de/
# $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

Wie man sieht, habe ich zur Zeit den 301er redirect eingebaut, so wie ich Jörg verstanden habe wäre ein Rewrite aber das richtige, ich denke auf Grund der anderen Rules müsste evtl. ein .htaccess für den /catalog/ ordner gemacht werden, das hatte ich auch schon probiert, bekam dann aber einen 500er Internal Error (evtl. etwas wegen den serversettings), hab dann den mod_rewrite, bzw. die benötigten options nun auch für den catalog freigeschaltet (virtual server settings). also müsste man mal scdhauen ob das mit der richtigen .htaccess datei geht.

07.11.2007 18:05 | geändert von Jörg: 07.11.2007 18:19

238 Jörg Kruse

Und wo hattest du die RewriteRule untergebracht?

Im Falle der Modrewrite Weiterleitung musst du die erste Zeile entfernen oder auskommentieren:

# Redirect 301 /catalog/ http://www.bongobong.de/

Andernfalls wird als erstes diese Weiterleitung ausgeführt so dass die Dateinamen weiterhin hinten dran gehängt werden

Mit der RewriteRule und dem L-Flag könnte man dies verhindern - die Rule sollte gleich nach dem Einschalten der RewriteEngine aufgeführt werden:

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

catalog/(.*)\.html$ http://www.bongobong.de/ [R=301,L]

PS: ich habe deinen Code in einen Code- statt Zitat-Block untergebracht - so liest sich der Beitrag leichter :)

07.11.2007 18:28 | geändert: 07.11.2007 18:29

239 Philip (Gast)

Habe die 301er Directrive rausgenommen und direkt unter "RewriteEngine On"

catalog/(.*)\.html$ http://www.bongobong.de/ [R=301,L]

eingefügt.

Nunja, dann kam auch ganz schnell ein 500er (Interner Fehler). Keine Ahnung wieso dieser Fehler kommt, obs nun ein Konflikt mit den Serversettings ist oder innerhalb der .htaccess etwas schief läuft weiss ich nicht, habe dann probehalber vor der Zeile "RewriteRule" geschrieben, dann gab es zwar keinen internen fehler mehr, aber es wurde auch nichts umgeleitet. komisch komisch alles, google klappert langsam die alten links ab und deklariert sie als 404er :( ohhje....

Hab jetzt erstmal wieder den redirect drinne stehen auch wenn das nicht wirklich ne Lösung ist von SUMA-aspekten her betrachtet. Wenn Du Jörg noch ne idee hast wäre das super, wenn nicht trotzdem n dickes lob an deine kompetente, direkte Hilfe.

Mfg
Philip

07.11.2007 19:23

240 Jörg Kruse

Nunja, dann kam auch ganz schnell ein 500er (Interner Fehler). Keine Ahnung wieso dieser Fehler kommt, obs nun ein Konflikt mit den Serversettings ist oder innerhalb der .htaccess etwas schief läuft weiss ich nicht, habe dann probehalber vor der Zeile "RewriteRule" geschrieben, dann gab es zwar keinen internen fehler mehr,

Args - ja da hatte ich wohl Tomaten auf den Augen 8( - das "RewriteRule" fehlte natürlich noch:

RewriteRule catalog/(.*)\.html$ http://www.bongobong.de/ [R=301,L]

habe dann probehalber vor der Zeile "RewriteRule" geschrieben, dann gab es zwar keinen internen fehler mehr, aber es wurde auch nichts umgeleitet.

Dann greift diese Regel noch nicht. Wenn man nach dem Aufbau folgenden Rule geht, sollte man es noch mit einem Begrenzungszeichen versuchen:

RewriteRule ^catalog/(.*)\.html$ http://www.bongobong.de/ [R=301,L]

07.11.2007 19:35 | geändert: 07.11.2007 19:38