Forum Astuces.divers .htaccess et redirection site.net vers www.site.net

Posté par  (site web personnel) .
Étiquettes : aucune
0
19
oct.
2012

Hello.

Je voudrais rediriger site.net vers www.site.net, avec un .htaccess on fait quelque chose comme :

RewriteEngine On
RewriteCond %{HTTP_HOST} ^site.net$
RewriteRule ^(.*) http://www.site.net/$1 [QSA,L,R=301]

Mon problème c'est que le site.net est hébergé par unetun et il y a une sorte de proxy https dont les urls ont la forme https://ssl.1and1.fr/site.net/

Je voudrais donc rediriger tout vers www. sauf le https://ssl.1and1.fr/

Que dois-je modifier et/ou ajouter à mon .htaccess?

D'avance merci : )

  • # plusieurs conditions

    Posté par  . Évalué à 2.

    RewriteEngine On
    RewriteCond %{HTTP_HOST} site.net$
    RewriteCond la condition qui va dire de ne pas prendre le https ://site.net
    RewriteRule .*http://www.site.net/$1 [QSA,L,R=301]

    • [^] # Re: plusieurs conditions

      Posté par  (site web personnel) . Évalué à 0.

      la condition qui va dire de ne pas prendre le https ://site.net

      c'est justement ce que je cherche à déterminer … le problème reste entier!

      wind0w$ suxX, GNU/Linux roxX!

      • [^] # Re: plusieurs conditions

        Posté par  . Évalué à 1.

        comment tu as trouvé pour la premiere ?

        man et google doivent pouvoir t'aider afin de ne pas simplement copier/coller sans comprendre

        ici le manuel de mod_rewrite avec toutes les options possibles (1er resultat de http://lmgtfy.com/?q=htaccess+rewrite+condition)
        http://httpd.apache.org/docs/current/mod/mod_rewrite.html

        et plus specialement le paragraphe : RewriteCond Directive

        • [^] # Re: plusieurs conditions

          Posté par  (site web personnel) . Évalué à 0. Dernière modification le 20 octobre 2012 à 19:26.

          J'ai expliqué le problème assez clairement et je poste ici parce que ça fait déjà un moment que je galère dessus.

          il semble que ce que j'essaie faire soit assez particulier (à cause de la configuration chez l'hébergeur peut-être) puisque aucun de mes tests ne fonctionnent.

          Normalement ceci devrait fonctionner mais ça ne fonctionne pas :
          RewriteEngine on
          RewriteBase /
          #si ça ne commence pas par www.site.net ou ssl.1and1.fr redirection vers www.site.net
          RewriteCond %{HTTP_HOST} !^www.site.net [NC]
          RewriteCond %{HTTP_HOST} !^ssl.1and1.fr [NC]
          RewriteRule (.*) http://www.site.net/$1 [QSA,R=301,L]

          Pourquoi?

          wind0w$ suxX, GNU/Linux roxX!

          • [^] # Re: plusieurs conditions

            Posté par  . Évalué à 3.

            ca ne fait pas ce que tu veux parce que dans ton code

            RewriteEngine on
            RewriteBase /
            RewriteCond %{HTTP_HOST} !www.site.net [NC]
            RewriteCond %{HTTP_HOST} !ssl.1and1.fr [NC]
            RewriteRule (.*) http://www.site.net/$1 [QSA,R=301,L]

            tu ne parles pas du https
            et d'apres ton premier post, c'est le https que tu veux detecter et NE PAS rediriger.

            Je voudrais donc rediriger tout vers www. sauf le https://ssl.1and1.fr/

            https, par defaut c'est sur le port 443, ca peut donc etre un test en plus à faire

            du coup ce que tu veux c'est que
            1°) ce ne soit pas du https ou pas sur le port 443
            ET
            2°) ce soit sans le www initial pour le rajouter

  • # solution PHP

    Posté par  (site web personnel) . Évalué à 0. Dernière modification le 21 octobre 2012 à 13:49.

    Bon en fait c'est un proxy https sur le port 80 avec le même HTTP_HOST qu'en http …
    Donc la solution que j'ai trouvée avec PHP :

        <?php
        if ($_SERVER['HTTP_X_FORWARDED_HOST'] != 'ssl.1and1.fr') {
             if ($_SERVER['HTTP_HOST'] != 'www.site.net') {
                header("HTTP/1.1 301 Moved Permanently");
                $url = 'http://www.site.net'.$_SERVER['REQUEST_URI'];
                header("Location: ".$url);
                exit;
             }
        }
        ?>
    
    

    C'est moche mais ça fonctionne.

    wind0w$ suxX, GNU/Linux roxX!

Suivre le flux des commentaires

Note : les commentaires appartiennent à celles et ceux qui les ont postés. Nous n’en sommes pas responsables.