Ankündigung

Einklappen
Keine Ankündigung bisher.

header - weiterleitung

Einklappen

Neue Werbung 2019

Einklappen
X
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • header - weiterleitung

    Hallo zusammen,

    ich habe eine webseite, sagen wir https://mein-domain.com

    Es gibt eine engl und eine deutsche unterseite

    https://mein-domain.com/de/
    https://mein-domain.com/en/

    Ich habe unter https://mein-domain.com/index.php folgendes
    je nach ermittelten Sprache, wird ein temp. redirect gemacht.

    Code:
    <?php
    
    $lc = "";
    
    if(isset($_SERVER['HTTP_ACCEPT_LANGUAGE'])) {
        $lc = substr($_SERVER['HTTP_ACCEPT_LANGUAGE'], 0, 2);
    }
    
    if($lc == "de"){
        header("location: /de/", false, 302);
        exit();
    } else{ // don't forget the default case if $lc is empty
        header("location: /en/", false, 302);
        exit();
    }
    ?>

    1. Ist mein Ansatz oben richtig! (auch im Hinblick auf SEO?)
    2. Wofür ist der 2. Parameter "false" Wann sollte man true eingeben und wann false? Verstehe leider nicht was ich bislang gefunden haben

    Besten Dank,
    Kalem

  • #2
    Guckst du ins Handbuch, steht dort alles beschrieben:

    Der optionale Parameter replace gibt an, ob der Header einen vorhergehenden gleichartigen Header ersetzten soll, oder ob ein zweiter Header des selben Typs hinzugefügt werden soll. Standardmäßig wird ersetzt; wenn Sie als zweites Argument FALSE übergeben, können Sie so mehrere Header desselben Typs erzwingen
    http://php.net/manual/de/function.header.php

    Kommentar


    • #3
      Desweiteren hat das Thema absolut nicht im Fortgeschritten Forum zu suchen.

      Warum zum Teufel liest niemand die Forenregeln? https://www.php.de/forum/webentwickl...rf-hier-posten

      Kommentar


      • #4
        Du könntest auch
        PHP-Code:
          if(isset($_SERVER['HTTP_ACCEPT_LANGUAGE'])) {
             
        $lc substr($_SERVER['HTTP_ACCEPT_LANGUAGE'], 02);
        }  

        if(
        $lc == "de"){
             
        header("location: /de/"false302);     exit();
        }

        if(
        $lc == "fr"){
             
        header("location: /fr/"false302);     exit();
        }  

        if(
        $lc == "en"){
             
        header("location: /en/"false302);     exit();

        // no language match then
        header("location: /en/"false302);     exit();

        schreiben, dann hast du, wenn keine Sprache vorhanden ist Englisch als Vorgabe.
        Alternativ, wenn viele Sprachen zur Auswahl stehen, kannst du ein Array nehmen oder switch.

        Schau dir dazu auch mal http://uk.php.net/manual/en/locale.acceptfromhttp.php an.

        Kommentar


        • #5
          MOD: Verschoben von Fortgeschritten
          The string "()()" is not palindrom but the String "())(" is.

          Debugging: Finde DEINE Fehler selbst! | Gegen Probleme beim E-Mail-Versand | Sicheres Passwort-Hashing | Includes niemals ohne __DIR__
          PHP.de Wissenssammlung | Kein Support per PN

          Kommentar

          Lädt...
          X