Partage
  • Partager sur Facebook
  • Partager sur Twitter

Problème de redirection 301 .htaccess

Sujet résolu
    20 février 2017 à 18:13:08

    Bonjour,

    J'ai besoin d'aide pour faire une redirection 301 avec mon site internet.
    Il est en 4 langues fr, en, br, es

    Les liens suivants dirigent vers les différentes langues du site:
    - https://www.domaine.com/fr/
    - https://www.domaine.com/en/
    -
    https://www.domaine.com/br/
    -
    https://www.domaine.com/es/

    J'ai mis ceci:
    RewriteCond %{HTTP_HOST} ^domaine\.com$ [OR]
    RewriteCond %{HTTP_HOST} ^www\.domaine\.com$
    RewriteRule ^(.*)$ https://www.domaine.com/$1 [R=301,L]

    La redirection fonctionne mais la réponse HTTP est la suivante:

    >>> https://www.domaine.com
    > --------------------------------------------
    > 302 Found
    > --------------------------------------------
    Status: 302 Found
    Code: 302
    X-Powered-By: PHP/5.6.30
    Location: https://www.domaine.com/fr/welcome
    Content-Type: text/html; charset=UTF-8
    Content-Length: 0
    Date: Mon, 20 Feb 2017 09:26:03 GMT
    Accept-Ranges: bytes
    Server: LiteSpeed
    Cache-Control: no-cache, no-store, must-revalidate, max-age=0
    Connection: close

    Pourriez-vous m'aider pour obtenir une redirection 301?
    Merci

    • Partager sur Facebook
    • Partager sur Twitter
    Anonyme
      21 février 2017 à 19:50:21

      Dans RewriteRule ^(.*)$ https://www.domaine.com/$1 [R=301,L], d'où vient $1 ? Es-tu sûr que $1 contient bien fr, en, br ou es?

      Cordialement, Novax.

      • Partager sur Facebook
      • Partager sur Twitter
        21 février 2017 à 20:28:50

        Merci pour ta réponse.

        Je pensais que le $1 prenait automatiquement tout ce qui vient après le /
        Où est-ce que je dois placer les identifiants fr, en, br ou es?

        Est-ce qu'il faudrait quelque chose comme ça?

        RewriteRule ^([a-z]{2})/([a-zA-Z]+)$ https://www.domaine.com/$1/$2 [R=301,L]

        Cordialement, Alain.

        -
        Edité par AlainHenri1 22 février 2017 à 13:34:59

        • Partager sur Facebook
        • Partager sur Twitter
        Anonyme
          22 février 2017 à 14:49:29

          Tu peux rewite les URLs en.domaine.com en domaine.com/en.

          Si tu veux détecter la langue automatiquement, c'est possible, que ce soit en PHP ou via le .htaccess : je ne sais pas comment on fait te conseille de partir sur une recherche internet du genre " apache htaccess detect language ".

          Les liens http://www.htaccesstools.com/redirection-by-language/ et http://tech-blog.borychowski.com/index.php/2009/03/htaccess/redirect-according-to-browser-language-mod-rewrite-and-http_accept_language/ on l'air intéressants.

          Bonne chance.

          • Partager sur Facebook
          • Partager sur Twitter
            23 février 2017 à 10:13:36

            Merci pour tes renseignements.

            Je suis parti sur cette config qui à l'air de fonctionner:

            RewriteCond %{QUERY_STRING} !lang=(fr|en|br|es)
            RewriteRule ^$ fr/welcome [R=301,L]

            RewriteRule ^(fr|en|br|es)$  $1/welcome [R=301,L]

            Cordialement.

            -
            Edité par AlainHenri1 23 février 2017 à 15:48:18

            • Partager sur Facebook
            • Partager sur Twitter

            Problème de redirection 301 .htaccess

            × Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
            × Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
            • Editeur
            • Markdown