Contao-Camp 2024
Ergebnis 1 bis 13 von 13

Thema: Probleme: /index.php?id=8 auf /de/beispielseite.html redirecten klappt nicht

  1. #1
    Administrator Avatar von Nina
    Registriert seit
    04.06.2009.
    Ort
    Hamburg
    Beiträge
    4.755
    Contao-Projekt unterstützen

    Support Contao

    Standard Probleme: /index.php?id=8 auf /de/beispielseite.html redirecten klappt nicht

    Ein Kunde hatte bisher URLs nach der Struktur /index.php?id=8
    Nach der Seitenumstellung hat er jetzt schöne URLs und zudem das Sprachkürzel, weil er unter derselben Domain mehrere Sprachen-Websites am Laufen hat.

    Das Problem:
    Ich bekomme jetzt partout die 301 Redirects nicht zum Laufen.
    Wie es scheint, bastelt Contao sich im ersten Schritt selbst (ohne mein Zutun) aus /index.php?id=8 schon mal /de/index.php?id=8.
    Mein Versuch das hier in die htaccess zu schreiben, greift dann nicht und führt nur zur 404.
    Code:
    ## Rewrites alte URLS ##
    #RedirectMatch 301 ^/index.php/(.*) /$1
    #RedirectMatch 301 /index.php?id=18 http://www.beispieldomain.de/de/beispielseite.html
    #RedirectMatch 301 /de/index.php?id=18 http://www.beispieldomain.de/de/beispielseite.html
    RedirectMatch 301 ^(.*)/index.php?id=18$ $1/de/beispielseite.htmll
    Ich habe alle Varianten getestet (jeweils einzeln), aber nichts klappt. Ich lande immer auf der 404 und sehe in der Adressleiste: http://www.beispieldomain.de//de/index.php?id=8

    Ich habe auch den Ort innerhalb der htaccess variiert, wo ich diesen Aufruf durchführe, also von "direkt nach der Rwerite Base" bis "ganz am Ende".

    Habt ihr einen Tipp?

  2. #2
    Contao-Urgestein Avatar von do_while
    Registriert seit
    15.06.2009.
    Ort
    Berlin | Deutschland
    Beiträge
    3.612
    Partner-ID
    1081
    User beschenken
    Wunschliste
    Contao-Projekt unterstützen

    Support Contao

    Standard

    Ich habe ein paar Infos dazu gefunden:

    http://stackoverflow.com/questions/1...fic-parameters
    http://www.gerillafilm.se/web/ultima...301-redirects/
    http://simonecarletti.com/blog/2009/...ing-redirects/

    Contao sollte mit dem Redirect erstmal noch nichts zu tun haben, das arbeitet der Server ab. Im Contao-Log müßtest Du in der 404-Meldung herausfinden können, welche URL dann bei Contao eingegangen ist.

  3. #3
    Administrator Avatar von Nina
    Registriert seit
    04.06.2009.
    Ort
    Hamburg
    Beiträge
    4.755
    Contao-Projekt unterstützen

    Support Contao

    Standard

    Danke, das funktioniert:

    direkt nach der RewriteBase:

    Code:
    RewriteCond %{QUERY_STRING} id=18
    RewriteRule ^index\.php$ /de/beispielseite.html? [L,R=301]
    (und natürlich im Backend die Seitenwartung durchführen und ggf. Browsercache leeren)

  4. #4
    Community-Moderator
    Wandelndes Contao-Lexikon
    Avatar von Spooky
    Registriert seit
    12.04.2012.
    Ort
    Scotland
    Beiträge
    34.061
    Partner-ID
    10107

    Standard

    Zur Info: Redirect bzw. RedirectMatch funktioniert nicht mit query parametern, da hat man keine andere Wahl als es mit mod_rewrite über RewriteCond %{QUERY_STRING} zu realisieren.

  5. #5
    Contao-Nutzer
    Registriert seit
    19.09.2012.
    Beiträge
    99

    Standard Redirect funktioniert nicht mit params

    Ich lasse den Nutzer einen Wert (code) in ein Formular eingeben und leite beim Absenden auf eine interne Seite (stop) weiter
    Der Parameter aus dem Formular wird per GET angehangen. Dadurch wird eine neue URL generiert, die ich dann mittels htaccess auf eine
    bestehende interne Seite umleiten möchte.

    http://domain.com/de/stop.html?code=810

    Man muss wissen, ich nutze bereits URL Rewrite und hänge jeder Seite .html an.

    Folgendes habe ich versucht:

    RewriteCond %{QUERY_STRING} code=810
    RewriteRule ^index\.php$ /de/zielseite.html? [L,R=301]

    klappt nicht. Kein Fehler, keine Reaktion



    RewriteCond %{QUERY_STRING} code=810
    RewriteRule ^shop\.html$ /de/zielseite.html? [L,R=301]

    klappt nicht. Kein Fehler, keine Reaktion



    Redirect 301 /stop.html?code=810 http://domain.com/de/zielseite.html

    klappt nicht. Kein Fehler, keine Reaktion


    Andere Weiterleitungen ohne reguläre Ausdrücke klappen mit Redirect 301 anstandslos.

    Bin Ratlos.

  6. #6
    Contao-Nutzer
    Registriert seit
    19.09.2012.
    Beiträge
    99

    Standard

    Hat sich erledigt.
    Ich musste den Code nur hinter der ReWrite Base platzieren. Läuft.

  7. #7
    Contao-Fan
    Registriert seit
    02.09.2009.
    Beiträge
    307

    Standard

    Hallo,

    ich habe gerade das gleiche Problem, dass ich eine Website mit Parametern übernommen habe (z.B. .../index.php?id=18) und diese auf lesbare URLs umschreiben möchte (z.B. .../meine-seite.html).

    Ninas Code funktioniert zwar für die Seite mit der ID 18 aber auch für die mit der ID 181 oder 1887 etc.
    Code:
    RewriteCond %{QUERY_STRING} id=18
    RewriteRule ^index\.php$ /de/beispielseite.html? [L,R=301]
    Wie kann ich dafür sorgen, dass - in diesem Fall nur die 18 behandelt wird und in einer anderen Regel die 181 etc.

    Des weiteren habe ich die gleichen Seiten auch in einer anderen Sprache, die durch &L=1 an oben genannten Parameter angehängt wird, d.h. ich möchte zusätzlich eine Unterscheidung in den beiden Sprachen.

    Danke & Grüße,
    juju
    Geändert von juju (19.07.2017 um 15:03 Uhr)

  8. #8
    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

    Evtl. so
    Code:
    RewriteCond %{QUERY_STRING} id=18[^\d]
    Schau mal ob du irgendwo einen guten Rewrite-Tester online findest.
    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

  9. #9
    Contao-Fan
    Registriert seit
    02.09.2009.
    Beiträge
    307

    Standard

    Hi Andreas,

    danke für Deine Antwort. Werde es testen.

    Viele Grüße,
    juju

  10. #10
    Contao-Urgestein Avatar von fiedsch
    Registriert seit
    09.07.2009.
    Ort
    München
    Beiträge
    2.942

    Standard

    Zitat Zitat von Andreas Beitrag anzeigen
    Evtl. so
    Code:
    RewriteCond %{QUERY_STRING} id=18[^\d]
    Evtl. noch etwas wie

    Code:
    RewriteCond %{QUERY_STRING} id=18([^\d]|$)
    falls die id=18 auch am Ende der Url erscheinen kann. Dann würde -- falls ich richtig liege -- id=18[^\d] nicht matchen, da nach der 18 ja kein "nicht digit" kommt.
    Contao-Community-Treff Bayern: http://www.contao-bayern.de

  11. #11
    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

    Ok, müsste dann eigentlich so aussehen. Mit nem "|$" hatte ich letztens irgendwo mal Probleme.
    Code:
    RewriteCond %{QUERY_STRING} id=18[^\d]?
    Heißt also, wenn ein Zeichen kommt, darf es kein Digit sein. Wenn kein Zeichen kommt matcht es auch.
    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

  12. #12
    Contao-Fan
    Registriert seit
    02.09.2009.
    Beiträge
    307

    Standard

    Hi Andreas und fiedsch,

    danke für Eure Antworten! In Kombination haben sie mein Problem gelöst.
    Code:
    RewriteCond %{QUERY_STRING} id=18([^\d]|$)
    hat genau das gemacht was ich wollte.

    Und für die Sprache (/index.php?id=18&L=1 bzw. /index.php?id=18&no_cache=1&L=1) habe ich folgende Lösung eingesetzt:
    Code:
    RewriteCond %{QUERY_STRING} id=18&(.*)L=1
    Vielleicht hilft das ja weiteren, die vor dem Problem stehen - wie in meinem Fall - eine ältere Typo3 Seite übernommen zu haben

    @Andreas: Was hattest Du für Probleme mit dem $ am Ende? Nur falls ich etwas übersehe,

    Danke und Grüße,
    juju

  13. #13
    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

    Weiß ich nicht mehr gena, war irgendein Test auf https://regex101.com/.
    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

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
  •