Zur Navigation

Weiterleitung auf neue URL funtioniert nicht

1 sempervivum (Gast)

Hallo Jörg,
Probleme mit redirect 301 funktioniert nur mit dem Wurzelverzeichnis /
domain.de/cms wird ersetzt durch domain.de, alle anderen Anweisungen funktionieren ncht.

Ich möchte aber:

domain.de/cms/index.php?option=com_content&view=article&id=57&Itemid=80 weiterleiten auf http://domain.de/ueber-unsere-gaertnerei.html
domain.de/cms/index.php?option=com_content&view=article&id=65&Itemid=111 weiterleiten auf http://domain.de/gartenmaerkte-weihnachtsmaerkte.html
Im folgenden Auszug fällt nur der Ordner cms weg, also etwa domain.de/index.php?option=com_content&view=article&id=65&Itemid=111 statt http://domain.de/gartenmaerkte-weihnachtsmaerkte.html. Ansonsten kommt es meistens zu 404: Seite nicht gefunden.
Danke im Vorraus
Jens

PS.:
Auszug aus der htaccess

 ##
# Contao Open Source CMS

# Copyright (c) 2005-2015 Leo Feyer
#
# @license LGPL-3.0+
##
<IfModule mod_rewrite.c>
  RewriteEngine On
  RewriteBase /

RedirectMatch 301 ^/cms/index.php?option=com_virtuemart&Itemid=89 http://domain.de/chili.html
Redirect 301 /index.php?option=com_content&view=article&id=57&Itemid=80 http://domain.de/
Redirect 301 /cms/index.php?option=com_content&view=article&id=63&Itemid=82 /
Redirect 301 /cms/index.php?option=com_content&view=article&id=65&Itemid=111 http://domain.de/gartenmaerkte-weihnachtsmaerkte.html

rewriterule ^cms/index.php?option=com_content&view=article&id=59&Itemid=83$ http://domain.de/versand.html$1 [r=301,nc]

Redirect 301 /cms/index.php?option=com_contact%26view=contact%26id=2%26Itemid=84 http://domain.de/kontakt.html
Redirect 301 /index.php?option=com_virtuemart&Itemid=86 http://domain.de/tomaten.html

RewriteCond %{QUERY_STRING} cms/index.php?option=com_virtuemart&Itemid=90$
RewriteRule ^$ http://domain.de/kraeuter.html [L,R=301]

RedirectPermanent /cms/index.php?option=com_virtuemart&Itemid=90 http://domain.de/kraeuter.html
Redirect 301 /cms/index.php?option=com_virtuemart&Itemid=93 http://domain.de/rosen.html
rewriterule ^cms/(.*)$ http://domain.de/$1 [r=301,nc]
rewriterule ^cms/index.php(.*)$ http://domain.de$1 [r=301,nc]
 
/cms/	http://domain.de/
domain.de/cms/index.php?option=com_content&view=article&id=57&Itemid=80	http://domain.de/ueber-unsere-gaertnerei.html
domain.de/cms/index.php?option=com_content&view=article&id=65&Itemid=111 http://domain.de/gartenmaerkte-weihnachtsmaerkte.html

10.05.2016 22:27

2 Jörg Kruse

Zitat von sempervivum
Ich möchte aber:

domain.de/cms/index.php?option=com_content&view=article&id=57&Itemid=80 weiterleiten auf http://domain.de/ueber-unsere-gaertnerei.html
domain.de/cms/index.php?option=com_content&view=article&id=65&Itemid=111 weiterleiten auf http://domain.de/gartenmaerkte-weihnachtsmaerkte.html

Mit den Redirect Direktiven kommst du da nicht weiter, da diese den Query String (Teil der URL nach dem ?) nicht berücksichtigen. Mit mod_rewrite kannst du entsprechende Bedingungen formulieren, z.B. so:

RewriteCond %{QUERY_STRING} option=com_content&view=article&id=57&Itemid=80
RewriteRule ^cms/index\.php$ http://domain.de/ueber-unsere-gaertnerei.html [L,R=301]

RewriteCond %{QUERY_STRING} option=com_content&view=article&id=65&Itemid=111
RewriteRule ^cms/index\.php$ http://domain.de/gartenmaerkte-weihnachtsmaerkte.html [L,R=301]

11.05.2016 13:01

3 sempervivum (Gast)

Hallo,
vieleicht hatte ich meine Frage schlecht formuliert, da ich noch Anfänger bin.
Die URL domain.de/cms/index.php?option=com_content&view=article&id=57&Itemid=80
soll weitergeleitet werden auf http://domain.de/ueber-unsere-gaertnerei.html

Wie schon erwähnt:
Redirect 301 /cms/index.php?option=com_content&view=article&id=57&Itemid=80 http://domain.de/ueber-unsere-gaertnerei.html
Das Ergebnis ist dann:
http://www.domain.de/index.php?option=com_content&view=article&id=57&Itemid=80 und 404, Seite nicht gefunden.

http://domain.de/ zeigt auf bio als Wurzelverzeichnis,
in der .htaccess ist RewriteBase / eingetragen.

Ich hoffe meine Fragen jetzt besser formuliert zu haben.
Danke im Vorraus
sempervivum

11.05.2016 13:36

4 sempervivum (Gast)

Hallo Jörg,
unsere Schreiberei hat sich gerade über schnitten.
Vielen Dank erst mal, melde mich später ob es geklappt hat

11.05.2016 13:39

5 sempervivum (Gast)

Hallo Jörg,
Ja fast!!!

Dein Vorschlag:
RewriteCond %{QUERY_STRING} option=com_content&view=article&id=57&Itemid=80
RewriteRule ^cms/index\.php$ http://domain.de/ueber-unsere-gaertnerei.html [L,R=301]

führt zu:

http://www.domain.de/ueber-unsere-gaertnerei.html?option=com_content&view=article&id=57&Itemid=80

Wunsch wäre:

http://www.domain.de/ueber-unsere-gaertnerei.html

Ich verstehe gar nicht, warum das ?option=com_content&view=article&id=57&Itemid=80 angehängt wird.

danke sempervivum

11.05.2016 14:02

6 Jörg Kruse

Ja, da muss noch ein ? an die Ziel-URL - das hängt den alten Query String wieder ab:

RewriteCond %{QUERY_STRING} option=com_content&view=article&id=57&Itemid=80
RewriteRule ^cms/index\.php$ http://domain.de/ueber-unsere-gaertnerei.html? [L,R=301]

11.05.2016 14:55

7 sempervivum (Gast)

Hallo Jörg,
du bist der Größte.

Deine Lösung:
RewriteCond %{QUERY_STRING} option=com_content&view=article&id=57&Itemid=80
RewriteRule ^cms/index\.php$ http://domain.de/ueber-unsere-gaertnerei.html? [L,R=301]

ist die beste.
Vielen Dank dafür.

Eine andere Lösung, die ich fand und die funktionierte:
RewriteCond %{QUERY_STRING} ^option=com\_content&view=article&id=57&Itemid=80$
RewriteCond %{REQUEST_URI} ^\/cms\/index\.php$
RewriteRule .* http://www.domain.de/ueber-unsere-gaertnerei.html? [R=301,L]

war mir zu lang.

11.05.2016 23:13

8 sempervivum (Gast)

Hallo Jörg,

Seltsam?!?!
Dein Vorschlag:

RewriteCond %{QUERY_STRING} option=com_content&view=article&id=57&Itemid=80
RewriteRule ^cms/index\.php$ http://domain.de/ueber-unsere-gaertnerei.html [L,R=301]

führte später zu internal server error, zunächst aber nicht.

Die folgenden Anweisungen führten nicht oder noch nicht dazu:

RewriteCond %{QUERY_STRING} ^option=com_virtuemart&Itemid=87
RewriteCond %{REQUEST_URI} ^\/cms\/index\.php$
RewriteRule .* http://www.domain.de/Kuebelpflanzen.html? [R=301,L]

Lieben Gruß sempervivum

12.05.2016 15:15

9 sempervivum (Gast)

bin es noch mal schnell, sehe gerade: Einmal [L,R=301] beim nächsten [R=301,L], ob das eine Rolle spielt?

12.05.2016 15:20

10 Jörg Kruse

führte später zu internal server error, zunächst aber nicht.

Hast du zwischenzeitlich noch weitere mod_rewrite Rules hinzugefügt? Ein solcher Error kann z.B. dadurch entstehen, dass die statische URL ihrerseits intern wieder auf die dynamische URL rewritet wird, von der sie weitergeleitet wurde, was zu einer Endlosweiterleitung führen kann. In so einem Fall kann eine RewriteCond helfen, die überprüft, ob der Request die dynamische URL enthält, wie es dem Beispiel-Code der Fall ist.

Die Reihenfolge der Flags L und R sollte hier egal sein

12.05.2016 16:34