[Erledigt] Weiterleitung 301 mit mod_rewrite

Dieses Thema im Forum "Webentwicklung" wurde erstellt von L33do, 16. Juni 2009 .

Status des Themas:
Es sind keine weiteren Antworten möglich.
  1. 16. Juni 2009
    Hey,

    ich habe unsere Webseite fast komplett auf Suchmaschinen-freundliche Links umgestellt und würde jetzt gerne die alten Links auf die neuen umleiten lassen.

    Für die News schaut das so aus:
    Code:
    RewriteEngine on
    RewriteBase /
    
    RewriteRule ^news/?([0-9]+)$ news.php?id=$1 [L]
    Nun würde ich gerne, um DC in den Suchmaschinen zu vermeiden, news.php?id=$zahl auf news/$zahl mit 301 umleiten.

    Bewertung ist selbstverständlich!

    Greetz, L33do
     
  2. 16. Juni 2009
    AW: Weiterleitung 301 mit mod_rewrite

    Da ich mich mit Mod Rewrite nicht wirklich auskenne kannst du das mal probieren:
    Code:
    RewriteRule ^news.php?id=([0-9]+)$ http://domain.de/news/$1/ [R=301,L]
    FAQ: mod_rewrite, 301 redirects, and optimizing Apache.
     
  3. 16. Juni 2009
    AW: Weiterleitung 301 mit mod_rewrite

    Das ist falsch rum.

    Code:
    RewriteRule ^news/([0-9]*)$ news.php?id=$1
    Aber was soll daran suchmaschinenfreundlich sein? Nachher haste:
    http://www.deineadresse.de/news/1
    http://www.deineadresse.de/news/2
    http://www.deineadresse.de/news/3
    http://www.deineadresse.de/news/4
    http://www.deineadresse.de/news/5
    http://www.deineadresse.de/news/6
    http://www.deineadresse.de/news/7

    ... Suchmaschinenfreundlich wäre der Titel, also z.B.:

    http://www.deineadresse.de/news/1/Dein_Newstitel.html
    http://www.deineadresse.de/news/2/Dein_anderer_Newstitel.html

    das würde dann so gehen:

    Code:
    RewriteRule ^news/([0-9]*)/([a-zA-Z0-9_@.\*-]*).html$ news.php?id=$1
    Naja, man kann zwar jetzt z.B.

    http://www.deineadresse.de/news/1/Dein_Newstitel.html
    oder
    http://www.deineadresse.de/news/1/Hey_ich_gib_ein_worauf_ich_Lust_hab.html
    eingeben, da nur die ID ausgelesen und eingesetzt wird (kann man auch verfeinern, dass der Titel korrekt sein muss), aber das ist egal, da Google nur den Link bekommen und indizieren muss und der sieht dann so aus, wie du ihn platzierst.
     
  4. 16. Juni 2009
    AW: Weiterleitung 301 mit mod_rewrite

    das ist aber gar nich das problem des Threaderstellers.
     
  5. 16. Juni 2009
    AW: Weiterleitung 301 mit mod_rewrite

    Er wollte die RewriteRule ... ??
    Oder meinst du, dass ich noch was von SEO erzähl, was er garnicht wissen will? ^^

    Edit: Ahja stimmt er wollte die alten Seiten auf die neuen umleiten
    Sorry ...
    Ja mh also auf jeden Fall keine JavaScript Weiterleitung. Ob es per php in Ordnung ist, weiß ich nicht.
    Ich hatte mal in der video2brain SEO DVD ne Tabelle, da stand, welche Weiterleitungen für Google in Ordnung sind. Ich glaube per htaccess, aber das hast du ja schon, nur das dauert eben seine Zeit. Hab grad das gleiche Problem.
    Google Webmastertools sind auch immer ganz nützlich!
     
  6. 16. Juni 2009
    AW: Weiterleitung 301 mit mod_rewrite

    ob php oder .htaccess sollte egal sein, da in beiden fällen nur n location-header gesetzt wird.

    wenn mans per php macht, sollte aber noch der status-code angepasst werden, denn location(...) setzt nen 302 tmp-moved header per default.

    also so:
    PHP:
    <? php
        header
    ( 'HTTP/1.1 301 Moved Permanently' );
        
    header ( 'location: http://neue-domain.de/resource' );
    ?>
     
  7. 16. Juni 2009
    AW: Weiterleitung 301 mit mod_rewrite

    Danke für die zahlreichen Antworten, nur ist nicht wirklich dabei, was ich suche.

    @6000Loader: Habe diese Variante schon probiert, das klappt nicht.

    @Murdoc: Hätte es gerne in .htaccess-Schreibweise gelöst.

    Aber ich bin selber schon ein Stück weiter gekommen.

    Dieser Codeschnipsel funktioniert fast:

    Code:
    RewriteCond %{QUERY_STRING} ^(([^&]*&)*)(.*)
    RewriteRule ^news\.php$ /news/%1%3 [L,R=301]
    Das Problem dabei ist: Es wird auf folgende URL geleitet: news/?id=1234id=1234

    Wie bringe ich das zweite ID mit der Zahl weg und das ?id= beim ersten? Dann würde es nämlich stimmen.

    Greetz, L33do

    Bewertungen sind mal draußen!

    EDIT: Habe jetzt eine Lösung finden können:

    Code:
    RewriteCond %{THE_REQUEST} ^GET\ /news\.php\?(([^&\s]*&)*)id=([0-9]+)&*([^\s]*)
    RewriteRule ^news\.php$ /news/%3?%1%4 [L,R=301]
    Tut genau das, was ich will .
     
  8. Video Script

    Videos zum Themenbereich

    * gefundene Videos auf YouTube, anhand der Überschrift.