Ergebnis 1 bis 8 von 8

Thema: URL UTF-8 Problem (Crawler)

  1. #1
    Contao-Nutzer
    Registriert seit
    25.10.2017.
    Beiträge
    21

    Standard URL UTF-8 Problem (Crawler)

    Hallo Community,

    ich hätte eine Frage bezüglich der URL-Encodings. Ich muss zugeben, dass ich mit den Encodings nicht allzu vertraut bin und nicht genau weiß, ob es hier an den Crawlern, Contao selbst oder den Servereinstellungen liegt.
    Und zwar habe ich das Problem, dass einige Crawler anscheinend Probleme mit "ä, ö, ü und ß" in urls haben. Jetzt muss man dazu sagen, dass es wohl nicht ideal ist, Umlaute überhaupt in der Url zu haben. Aber das ist ein anderes Thema.

    Bei uns ist es so, dass wir interne Links auf unsrer Seite haben mit z.B. meineurl.com/adresse/hauptstra%C3%9Fe
    "hauptstraße" ist also ein "auto_item"-Parameter, den wir über "\Input::get('auto_item')" einlesen und an unsere Backend-Api senden.

    Nun habe ich in "contaoroot/system/modules/core/library/Contao/Input.php" und "contaoroot/system/helper/mbstring.php" gesehen, dass Url's eh schon richtig behandelt werden sollten.
    Auch werden die Header ja auch überall UTF-8 gesetzt (siehe https://github.com/contao/core/issues/7519 und https://github.com/contao/core/commi...ae306436208a8c).

    Ich habe bei uns mitgeloggt und wenn bestimmte Crawler auf den obigen Link gehen, kommt ein 404er von unserer API zurück, weil anscheinend hauptstraße und öfters auch hauptstra??e an unsere API geschickt wird.
    Kann ich das Problem irgendwie lösen und wo muss ich hier ansetzen? Danke!

    Mit freundlichen Grüßen

  2. #2
    Contao-Nutzer
    Registriert seit
    25.10.2017.
    Beiträge
    21

    Standard

    Hat hier niemand eine Idee? Danke!

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

    Standard

    Woher bekommen die Crawler diese URLs? Contao gibt die URLs überall URL encodet aus.

  4. #4
    Contao-Nutzer
    Registriert seit
    25.10.2017.
    Beiträge
    21

    Standard

    Die Links sind interne Links auf unserer Standorte-Seite. Hier gibt es eben eine Liste von Standort-Links, welche urlencoded nach dem Muster (meineurl.com/adresse/hauptstra%C3%9Fe) im HTML sind.

    Habe gerade nochmals in die access.log vom Apache geschaut und laut den log-Einträgen gibt es hier GET-requests von Crawlern auf "hauptstra%C3%83%C5%B8e". Nachdem dann alles durch Contao gelaufen ist, habe ich bei meinem Frontendmodul dann "hauptstraße" in \Input::get('auto_item') stehen.

    Zwei Kandidaten wo das bei uns momentan auftritt sind:
    IP-Adresse: 217.250.184.0
    Browser: Mozilla/5.0 (Windows; U; Windows NT 6.0; de; rv:1.9.2.3) Gecko/20100401 Firefox/3.6.3 ( .NET CLR 3.5.30729)

    IP-Adresse: 207.46.13.0
    oder
    IP-Adresse: 157.55.39.0
    Browser: Mozilla/5.0 (compatible; bingbot/2.0; +http://www.bing.com/bingbot.htm)

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

    Standard

    Zitat Zitat von Amattix Beitrag anzeigen
    Die Links sind interne Links auf unserer Standorte-Seite. Hier gibt es eben eine Liste von Standort-Links, welche urlencoded nach dem Muster (meineurl.com/adresse/hauptstra%C3%9Fe) im HTML sind.

    Habe gerade nochmals in die access.log vom Apache geschaut und laut den log-Einträgen gibt es hier GET-requests von Crawlern auf "hauptstra%C3%83%C5%B8e".
    Diese URL ist double encoded. Wie gibst du diese Links aus?

    Poste außerdem einen Link zur Seite, wo diese URLs ausgegeben werden.

  6. #6
    Contao-Nutzer
    Registriert seit
    25.10.2017.
    Beiträge
    21

    Standard

    "hauptstra%C3%9Fe" -> Im html: https://www.store.me/de-AT/standorte?page=4 (siehe rechts unten "Storebox Nußdorfer Straße")
    danach
    "hauptstra%C3%83%C5%B8e" -> in der apache access.log
    danach
    "hauptstraße" -> Im Frontendmodul mit \System::log, wobei der request über curl an die Backend-API geht.


    Bezüglich dem double encoding: An sich dürfte ja "hauptstra%C3%83%C5%B8e" nie in der access.log stehen oder? So ruft das ja der Crawler auf oder wird hier noch davor an einer anderen Stelle (außer Crawler/Browser) encoded?
    Das schaut ja so aus als würde bereits vorher "%C3" -> "Ã"(Windows-1252) und "%9F" -> "Ÿ"(Windows-1252), danach urlencode(Ã) -> "%C3%83" und urlencode(Ÿ) -> "%C5%B8" gemacht werden?

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

    Standard

    Sieht alles korrekt aus. Wüsste nicht warum solche Requests ankommen sollten.

  8. #8
    Contao-Nutzer
    Registriert seit
    25.10.2017.
    Beiträge
    21

    Standard

    Ok, vielleicht fällt sonst noch wem was ein. Ansonsten müssen wir diese Requests als Ausnahmen behandeln.

    Vielen Dank schon mal!

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
  •