Zur Navigation

Redirect 301 und Fehlermeldung 310

Wie benenne ich dynamische Unterseiten in Statische um ohne doppelten Content zu erzeugen??

1 AndreG

Hallo,

ich möchte dynamiche Unterseiten in Statische umbenennen.

Mit folgendem Code erstelle ich eine neue Adresse:
RewriteRule (^|\/)statisch.html$                      $1index.php?content=dynamisch 

Nun habe ich zwei Adressen mit gleichem Inhalt.
Mit folgendem Code leite die dynamische Seite auf die virtuell erstellte statische Seite weiter, um doppelten Content zu verhindern:
RewriteCond %{QUERY_STRING} content=dynamisch
RewriteRule index\.php http://www.domain.tld/statisch.html? [L,R=301]

Dann kommt allerdings die Fehlermeldung
" Fehler 310 (net::ERR_TOO_MANY_REDIRECTS): Zu viele Umleitungen. "

Gibt es eine Lösung eine existierende php Seite komplett in eine html Seite dauerhaft umzubenennen?

Ich habe lange gesucht, aber konnte leider keine Lösung zu meinem Problem finden. Ich hoffe, dass hier jemand helfen kann.

Danke.

19.03.2012 21:37

2 Jörg Kruse

Ich würde in der RewriteCond auf THE_REQUEST prüfen, statt auf QUERY_STRING

RewriteCond %{THE_REQUEST} content=dynamisch

19.03.2012 22:09

3 AndreG

Poah! Ich glaubs nicht! :-)
Es funktioniert!

Geil Geil Geil! Danke!

20.03.2012 07:23

4 AndreG

Ok, das war klar. Auf die Lösung eines Problems folgt das nächste Problem.

Wie verhindere ich, dass die Unterkomponenten wie
www.domain.tld/index.php?content=dynamisch&auswahlfeld1=bla&auswahlfeld2=blubb

auch alle auf

www.domain.tld/statisch.html weiterleiten?

Ziel ist eine Weiterleitung der Unterseiten auf
www.domain.tld/statisch/bla-blubb

20.03.2012 07:55

5 Jörg Kruse

Zitat von AndreG
Wie verhindere ich, dass die Unterkomponenten wie
www.domain.tld/index.php?content=dynamisch&auswahlfeld1=bla&auswahlfeld2=blubb

auch alle auf

www.domain.tld/statisch.html weiterleiten?

Mit dem Delimiter $

RewriteCond %{THE_REQUEST} content=dynamisch$

Ziel ist eine Weiterleitung der Unterseiten auf
www.domain.tld/statisch/bla-blubb

Du kannst Variablen aus der RewriteCond mit %1, %2 etc. wiederaufnehmen:

RewriteCond %{THE_REQUEST} content=dynamisch&auswahlfeld1=(.+)&auswahlfeld2=(.+)
RewriteRule index\.php http://www.example.com/statisch/%1-%2? [L,R=301]

20.03.2012 09:42

6 AndreG

Mit dem Delimiter $
RewriteCond %{THE_REQUEST} content=dynamisch$

Diese Änderung hat bewirkt, dass der Befehl nun ignoriert wird. Also bei Aufruf der dynamischen Seite www.domain.tld/index.php?content=dynamisch passiert nichts.

Also irgendetwas ist hier noch unstimmig. Ich habe insgesamt nun folgendes:
RewriteRule (^|\/)statisch.html$                      $1index.php?content=dynamisch 
RewriteCond %{QUERY_STRING} content=dynamisch$
RewriteRule index\.php http://www.domain.tld/statisch.html? [L,R=301]

Für mich sind das leider Hyroglyphen. Hast du eine Idee?

Das mit den Unterseiten muss ich mir noch zusammenmodeln ;-)

20.03.2012 19:39

7 Jörg Kruse

Ja, sorry, das $ war bei THE_REQUEST auch Blödsinn, das Ende des URL wird dort ja durch ein Leerzeichen markiert. Dieses kann man in der htaccess durch ein "\ " darstellen. Beachte hier das Leerzeichen am Ende der Zeile:

RewriteCond %{THE_REQUEST} content=dynamisch\ 

... oder falls das nicht funktioniert, das Leerzeichen mit Anführungszeichen mit einschließen:

RewriteCond %{THE_REQUEST} "content=dynamisch "

20.03.2012 23:13

Beitrag schreiben (als Gast)

Die Antwort wird nach der Überprüfung durch einen Moderator freigeschaltet.





[BBCode-Hilfe]