Ergebnis 1 bis 6 von 6

Thema: Alte Url auf neu Url umleiten - htaccess; mod_rewrite

  1. #1
    Contao-Nutzer
    Registriert seit
    23.06.2009.
    Beiträge
    82

    Standard Alte Url auf neu Url umleiten - htaccess; mod_rewrite

    Hallo,

    nun habe ich schon unglaublich viel Zeit damit verbracht, zu versuchen eine alte bei google gelistete Url auf eine contao Seite umzuleiten. Doch ich bekomme es einfach nicht hin.

    Alte Url:
    http://www.domain.de/index.php?topic=DRESS-Demo

    Neue Url (Umleitung zur contao-Seite):
    http://www.domain.de/dress_demo.html

    System:
    contao 2.11.2; mod_rewrite funktioniert; domain.de zeigt direkt auf den Installationsordner der contao Installation also RewriteBase /;

    Ich habe mehrere Ansätze probiert:

    Code:
    ##
      # Redirect an old dead link to a spezial page
      # Dress Demo
      ##  
      ##Attempt #2
      #RewriteCond %{REQUEST_URI} index.php
      #RewriteCond %{QUERY_STRING} topic=DRESS-Demo
      #RewriteRule /index.php dress_demo.html? [L]
      
      ##Attempt #3
      #RewriteCond %{QUERY_STRING} topic=(.+)
      #RewriteRule /index.php /%1.html [L]
      
      ##Attempt #4 #302 only temporary for testing
      #RewriteCond %{QUERY_STRING} topic=DRESS-Demo
      #RewriteRule ^index\.php$ http://www.domain.de/dress_demo.html [R=302,L]  
    
      ##Attempt #5
      #Redirect permanent /index.php?topic=DRESS-Demo http://www.domain.de/dress_demo.html
    Attempt #4 war am vielversprechendsten. Diesen habe ich bei einer Magentoinstallation unter "gleichen" Urlbedingungen ausprobiert, dort hat es die Url wunderbar umgeleitet. Aber im contao wird die Bedingung noch nicht einmal erkannt.

    Dieses Problem treibt mich in den Wahsinn. Mit htaccess und den regex bin ich noch nie ganz warm geworden.

    Grüße und Danke

  2. #2
    Contao-Fan Avatar von Babelfisch
    Registriert seit
    30.06.2009.
    Ort
    Leipzig
    Beiträge
    894

    Standard

    Variante #4 sollte eigentlich funktionieren. Nur so als Frage, RewriteEngine On hast du aber vorher geschrieben?

    Code:
    RewriteEngine On
    RewriteBase /
    
    RewriteCond %{QUERY_STRING} topic=DRESS-Demo
    RewriteRule .* dress_demo.html [R=301,L]
    Geht es so?

    Gruß
    Meine aktiven Contao-Projekte: LingoliaStiftung firmm

  3. #3
    Contao-Nutzer
    Registriert seit
    23.06.2009.
    Beiträge
    82

    Standard

    Hm, leider funktioniert das noch nicht. Aber immerhin tut sich unter folgenden Bedingungen etwas:

    Input Url:
    www.domain.de?topic=DRESS-Demo

    Output:
    http://www.domain.de/dress_demo.html

    Code:
      RewriteEngine On
    
      RewriteCond %{QUERY_STRING} topic=DRESS-Demo
      RewriteRule .* /dress_demo.html? [R=301,L]
    Wenn man also das index.php weg lässt, greif die RewriteCond. Mit index.php wird die Regel nicht ausgeführt. Das verstehe ich aber nicht, denn die Cond mit QUERY_STRING ist doch unabhängig von der REQUEST_URI. Und die RewriterRule sollte alles, egal was, auf /dress_demo.html? (ohne Query String) umleiten.

  4. #4
    Contao-Fan Avatar von Babelfisch
    Registriert seit
    30.06.2009.
    Ort
    Leipzig
    Beiträge
    894

    Standard

    Wahrscheinlich hast du vor der Regel noch weitere Regeln stehen, die auf die index.php ansprechen und mit dem Flag L die Bearbeitung beenden. Du musst diese Weiterleitungsregel also ganz an den Anfang direkt nach RewriteEngine On schreiben.

    Gruß
    Meine aktiven Contao-Projekte: LingoliaStiftung firmm

  5. #5
    Contao-Urgestein Avatar von Andreas
    Registriert seit
    19.06.2009.
    Ort
    Mönchengladbach
    Beiträge
    7.703
    User beschenken
    Wunschliste
    Contao-Projekt unterstützen

    Support Contao

    Standard

    Ich hatte mir in nem Projekt mal ne ganze Reihe von Umleitungen nach diesem Muster gemacht
    Code:
    RewriteRule ^index.php?topic=DRESS-Demo /dress_demo.html [L,R=301]
    Das funktionierte wunderbar. Ich hatte zwar keine Parameter, aber könnte ja trotzdem funktionieren. Diese Regeln hatte ich alle als letzes gesetzt.
    Bitte!
    Vor Anfragen im Forum HTML validieren.
    Codesnippets hier im Froum sauber einrücken. Nur Tabs o. nur Leerzeichen verwenden.

    Vielen Dank an alle Wunschlistenerfüller
    Andreas Burg, Web Solutions

  6. #6
    Contao-Nutzer
    Registriert seit
    23.06.2009.
    Beiträge
    82

    Standard gelöst!

    @Babelfish: Danke. Ich hatte die Regeln schon direkt nach dem RewriteEngine on. Dein Kommentar hat mich trotzdem auf die richtige Fährte gebracht. Testweise habe ich alle anderen htaccess Anweisungen entfernt. Es ging. Dann im trail&error nur partielle Anweisungen entfernt und siehe da, folgende Anweisung hat das Umschreiben verhindert:

    Code:
      # Do not rewrite requests for static files or folders such as style sheets,
      # images, movies or text documents.
    
     <FilesMatch "\.(png|gif|jpe?g|js|css|ico|php|xml|csv|txt|gz|swf|flv|eot|woff|svg|ttf|htm)$">
       RewriteEngine Off
     </FilesMatch>
    Diese stand übrigends nach meiner RewriteRule. Komisch, das htaccess-File wird offensichtlich nicht sequenziell abgearbeitet. Diese Regel hat höhere Priorität. Ich habe sie auskommentiert. Die Seite funktioniert unverändert.

    Kann mir jmd noch was zu dieser Anweisung sagen! Denn eigentlich wiederspricht der einleitende KOmmentar dem Inhalt. *.php Files sind nicht statisch!!!

    Ich danke allen Helfenden.

Aktive Benutzer

Aktive Benutzer

Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)

Lesezeichen

Lesezeichen

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •