redirect permanent in htaccess funktioniert nicht richtig?
Eingetragen von mike (28)
am 07.09.2008 - 16:25 Uhr in
am 07.09.2008 - 16:25 Uhr in
Hallo zusammen,
ich bin bei einer Seite von Joomla nach Drupal umgestiegen. Nun habe ich von Joomla noch endlose URLs (die alle auf den gleichen Inhalt zeigten) im Google Cache und möchte diese per htaccess umleiten.
Ein Beispiel:
http://www.servietten-falten.info/anleitungen/1-anleitung/7-style
in der htaccess steht (vor dem "Drupal Code"):
redirect permanent /anleitungen/1-anleitung/7-style http://www.servietten-falten.info/anleitungen/style
Drupal macht dann daraus:
http://www.servietten-falten.info/anleitungen/style?q=anleitungen/1-anleitung/7-style
Wo kommt der Query String jetzt auf einmal her?
- Anmelden oder Registrieren um Kommentare zu schreiben
Nix Drupal
am 07.09.2008 - 20:27 Uhr
Hat mit Drupal nichts zu tun. Du willst ein Rewrite machen, kein Redirect – einfach eine kleine Verwechselung.
Ein Redirect macht nur Sinn, wenn die Altinstalltion noch besteht und von dort aus z.B. permanent auf eine(n) anderer/n Installation/ Server weitergeleitet werden soll.
Wenn ich das aber richtig sehe, willst Du einfach die nicht mehr existenten, "falschen" URL's für eine bestehende Installation mit neuen URL's umschreiben.
Er will seine geliebten
am 07.09.2008 - 20:37 Uhr
Er will seine geliebten URLs, die Google von seiner Ex-Joomla intus hat nicht verlieren bzw. keine 404s.
Die er eigentlich vermeiden könnte, wenn er die Nodes alle so benennt wie sie auch in Joomla für zb den Artikel XYZ war.
----------------------------------------
Alle Angaben ohne Gewähr!!:D
http://www.tobiasbaehr.de/
Weder noch ...
am 07.09.2008 - 21:12 Uhr
Hi,
ich habe durch Joomla für ein und die selbe Seite hinterher ca. 10 oder mehr URLs gehabt. :-( Nun bin ich auf Drupal gewechselt und habe saubere URLs (eine für jede Inhaltsseite). Allerdings hat Google noch die ganzen anderen Seiten im Index. Eine Möglichkeit wäre die alten URL mit einem redirect gone (= #410) schnellstmöglich aus dem Index zu werfen. Dies ist allerdings nicht sehr Benutzerfreundlich. Langsamer geht es auch wenn die alten URLs nur noch einen redirect permanent (= #301) auf die neuen URLs liefern.
Bisher habe ich nie Probleme gehabt, egal welches CMS, Script, etc. so etwas per htaccess zu lösen. Nur hier klappt das nicht.
Du kannst die URLs auch
am 07.09.2008 - 21:15 Uhr
Du kannst die URLs auch löschen via Webmaster Tools bei Google. Es sei denn deine URLs haste überall verstreut in Foren etc. angegeben, dann wird Google, die immer wieder in den Index aufnehmen.
----------------------------------------
Alle Angaben ohne Gewähr!!:D
http://www.tobiasbaehr.de/
Gute Idee ;-)
am 07.09.2008 - 22:02 Uhr
Hi Spartacus,
danke, an die habe ich gar nicht mehr gedacht. Eine URL habe ich mal testweise eingetragen, mal schauen ob es wie erwartet funktioniert. ;-)
Aber es bleibt für mich die Verständnisfrage, warum das redirect nicht wie erwartet funktioniert.
Ciao,
Mike
mike schrieb Aber es bleibt
am 07.09.2008 - 23:02 Uhr
Aber es bleibt für mich die Verständnisfrage, warum das redirect nicht wie erwartet funktioniert.
Mir kommt ja vor, als hätte ich das schon gesagt: umlenken kannst Du nur bestehende Seiten; nicht bestehende muss man hingegen auf bestehende umschreiben. Genau so macht es Drupal mit den Clean URL's. In Wahrheit gibt es keine URL wie z. B. www.example.com/admin/logs (obwohl sie aufgerufen wird), es existiert nämlich ausschließlich www.example.com/index.php?q=admin/logs. Der Webserver wandelt durch ein Rewrite - zumeist unter bestimmten Bedingungen - die nicht existente (wenn auch "saubere" oder "lesbare") URL in eine existierende um.
Ein Versuch, dies zu verstehen, würde Dich wahrscheinlich einer Lösung näher bringen. Sieh Dir an, wie Drupal die sog. "Clean URL's" realisiert und Du hast es fast schon in der Tasche.
???
am 07.09.2008 - 23:51 Uhr
Mir kommt ja vor, als hätte ich das schon gesagt: umlenken kannst Du nur bestehende Seiten; nicht bestehende muss man hingegen auf bestehende umschreiben.
Seit wann das?
http://www.tinyweb.de/local/redirect.html
http://httpd.apache.org/docs/1.3/mod/mod_alias.html#redirect
Ich habe beispielsweise einen Kunden mit einem Online-Shop. Nach einer Umstellung des Shop-System mussten die alten URLs auch auf die neuen (sprechenden URLs) weitergeleitet werden. Natürlich erfolgte bei den sprechenden URLs noch ein rewrite, so dass das Script auch etwas damit anfangen konnte. Aber am Anfang der htaccess stehen viele redirect permanent, die die alten, bekannten URLs problemlos weiterleiten.
Ciao,
Mike
RewriteRule
am 08.09.2008 - 11:46 Uhr
Ich schreibe meine Regeln immer so:
# einschalten
RewriteEngine on
# Die alte URL auf den richtigen Weg bringen!
RewriteRule ^/anleitungen/1-anleitung/7-style$ /anleitungen/style [R=301,L]
Oder so, wenn es intern nicht funktioniert:
RewriteRule ^/anleitungen/1-anleitung/7-style$ http://www.servietten-falten.info/anleitungen/style [R=301,L]
Werde ich ausprobieren ...
am 08.09.2008 - 23:12 Uhr
Hi RainMan,
danke, ich werde es morgen so mal testen. Mein redirect funktioniert halt auch ohne mod_rewrite.
Ciao,
Mike
funktioniert ...
am 10.09.2008 - 00:28 Uhr
# Die alte URL auf den richtigen Weg bringen!
RewriteRule ^anleitungen/1-anleitung/7-style$ /anleitungen/style [R=301,L]
Wenn ich nach dem ^ noch den / weglasse funktioniert es. Danke.
(Aber verstehen, warum das Redirect nicht das erwartete Ergebnis liefert, tu ich leider noch nicht. ;)
301 funktioniert nicht
am 08.09.2009 - 09:07 Uhr
Hallo zusammen,
ich hab genau das selbe Problem wie es mike beschrieben hat, mit der Joomla htaccess gib es keine Problem mit dem "Redirect permanent" oder "RewriteRule". In Drupal bekomme ich weder den "Redirect permanent" noch einen "RewriteRule" hin, es wird immer angezeit das die Seite nicht existiert.
Woran liegt das?
Mit dem Modul "Path redirect", funktioniert es ohne beanstandung, nun möchte ich aber das ganze via .htaccess per Hand umsetzen.
Hier muss doch die Standard htaccess von Drupal dieses verhindern, oder sehe ich das falsch. Der Server auf dem ich arbeite ist der selbe auf den ich auch Joomla laufen habe.
Gruß
Markus