VirtualHost : redirection 301 KO

Discussion dans 'URL Rewriting et .htaccess' créé par passion, 16 Janvier 2018.

  1. passion
    passion WRInaute accro
    Inscrit:
    6 Janvier 2006
    Messages:
    3 831
    J'aime reçus:
    160
    Bonjour,

    J'avais mis en place des redirections via VirtualHost pour transférer http => https sur mon VPS debian 8. ça fonctionnait parfaitement sauf que là, j'ai remis à nu ma distribution pour passer sur debian 9 (stretch) [Apache version 2.4.25] et ainsi activer le http/2. Tout fonctionne comme je le souhaite sauf ma redirection !
    Je m'explique:
    - http://monsite.fr = status 200, pas de redirection ?!
    - http://www.monsite.fr vers https://www.monsite.fr = status 301, redirection OK !

    Voici mon code:
    Code:
    <VirtualHost *:80>
    DocumentRoot "/var/www/html/xxxxx/xxxxx"
    ServerName xxxxx.fr
    <Directory "/var/www/html/xxxxx/xxxxx">
    allow from all
    AllowOverride All
    </Directory>
    ErrorLog /home/xxxxx/logs/e_xxxxx.log
    LogLevel warn
    CustomLog /home/xxxxx/logs/a_xxxxx.log combined
    ServerAlias www.xxxxx.fr
    #
    RewriteEngine On
    RewriteRule (.*) https://www.xxxxx.fr%{REQUEST_URI} [L,R=301] 
    #
    </VirtualHost>
    
    Biensûr, pas d'erreurs dans les logs, ça serait trop facile :(
    J'ai vidé le cache, etc... et je teste sur un site tiers : http://www.redirection-web.net/
    J'ai fait un "ping monsite.fr" ou "www.monsite.fr", je suis bien sur la même IP du VPS.
    Vous avez une idée parce que là... je sèche ?! Est-ce dû à une spécificité de Apache 2.4.25 ? Ou Stretch ? Bref... je cale :(

    Merci de votre aide.
     
    Lionel Belarbi apprécie ceci.
  2. Lionel Belarbi
    Lionel Belarbi WRInaute occasionnel
    Inscrit:
    26 Décembre 2017
    Messages:
    481
    J'aime reçus:
    89
    pas de panique !
     
  3. Lionel Belarbi
    Lionel Belarbi WRInaute occasionnel
    Inscrit:
    26 Décembre 2017
    Messages:
    481
    J'aime reçus:
    89
    Code:
    RewriteEngine on
    RewriteCond %{HTTP_HOST} ^www\.(.*)$ [NC]
    RewriteRule ^(.*)$ http://%1%{REQUEST_URI} [R=301,QSA,NC,L]
    RewriteCond %{HTTPS} !=on
    RewriteRule ^ https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301]
    
    Pour l'instant, inspirez vous de ce code, je cherche pour votre problème. Ce code retire le www en 301, je vous en fais un avec le contraire
     
    #3 Lionel Belarbi, 16 Janvier 2018
    Dernière édition: 16 Janvier 2018
  4. Lionel Belarbi
    Lionel Belarbi WRInaute occasionnel
    Inscrit:
    26 Décembre 2017
    Messages:
    481
    J'aime reçus:
    89
    Code:
    RewriteEngine on
    RewriteCond %{SERVER_PORT} !^443$ [OR]
    RewriteCond %{HTTP_HOST} !^www.exemple.com$
    RewriteRule ^(.*) https://www.exemple/$1 [QSA,L,R=301]
    c'est bon pour moi et vous ? redirect http vers https et sans www vers www le tout en full 301
     
  5. Lionel Belarbi
    Lionel Belarbi WRInaute occasionnel
    Inscrit:
    26 Décembre 2017
    Messages:
    481
    J'aime reçus:
    89
    Je reviens après dîner bon courage et j'espère que vous trouverez la solution
     
  6. passion
    passion WRInaute accro
    Inscrit:
    6 Janvier 2006
    Messages:
    3 831
    J'aime reçus:
    160
    Bonjour Lionel,
    Merci pour le temps que tu as pris pour me répondre.
    J'ai tout essayé mais rien... que dalle !
    C'est vraiment étrange parce que je passe par le virtualhost sur le port 80 donc pas la peine de se prendre la tête à écrire une condition RewriteCond puisque tout est à envoyer en 301 vers la version https. Mais rien n'est fait ?! :(
    Même:
    Code:
    RedirectMatch permanent ^/(.*)$ https://www.monsite/$1
    Après contrôle, j'ai toujours:
    -http://www.monsite ok vers -https://www.monsite
    -http://monsite => KO, pages blanche en status 200
     
  7. Lionel Belarbi
    Lionel Belarbi WRInaute occasionnel
    Inscrit:
    26 Décembre 2017
    Messages:
    481
    J'aime reçus:
    89
    Bonjour,

    Au pif,

    Code:
    RedirectMatch permanent ^/(.*)$ http://www.monsite/$1
    #Et
    RedirectMatch permanent ^/(.*)$ https://www.monsite/$1
    
    Je sais que pour le faire j'ai mis une redirection sans www vers www et une http://www vers https://www

    Je l'ai fait en deux fois
     
  8. Lionel Belarbi
    Lionel Belarbi WRInaute occasionnel
    Inscrit:
    26 Décembre 2017
    Messages:
    481
    J'aime reçus:
    89
    Code:
    RedirectMatch permanent ^/(.*)$ https://www.monsite.com/$1
    
    
    Et l'extension dans la règle ?
     
  9. Lionel Belarbi
    Lionel Belarbi WRInaute occasionnel
    Inscrit:
    26 Décembre 2017
    Messages:
    481
    J'aime reçus:
    89
    Le principe c'est de le faire en deux fois, une pour le www et une pour le https et de respecter l'ordre ça fonctionne à 100%

    J'avais le même problème.
     
  10. passion
    passion WRInaute accro
    Inscrit:
    6 Janvier 2006
    Messages:
    3 831
    J'aime reçus:
    160
    rien... n'y fait... :mad:
    j'en perds mon latin pfff
     
  11. Lionel Belarbi
    Lionel Belarbi WRInaute occasionnel
    Inscrit:
    26 Décembre 2017
    Messages:
    481
    J'aime reçus:
    89
    :mad::mad::mad::mad::mad:

    on va provoquer une erreur pour voir, colle ça bêtement en retirant ta règle ça fait l'inverse :

    Code:
    RewriteEngine on
    RewriteCond %{HTTP_HOST} ^www\.(.*)$ [NC]
    RewriteRule ^(.*)$ http://%1%{REQUEST_URI} [R=301,QSA,NC,L]
    RewriteCond %{HTTPS} !=on
    RewriteRule ^ https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301]
    dit moi ce que ça fait
     
  12. passion
    passion WRInaute accro
    Inscrit:
    6 Janvier 2006
    Messages:
    3 831
    J'aime reçus:
    160
    pas d'erreur.
    -http://www.monsite ok vers -http://monsite
    -http://monsite : Accès direct (200)
     
  13. Lionel Belarbi
    Lionel Belarbi WRInaute occasionnel
    Inscrit:
    26 Décembre 2017
    Messages:
    481
    J'aime reçus:
    89
    ok super !!! je vous fais le code inverse :)
     
  14. Lionel Belarbi
    Lionel Belarbi WRInaute occasionnel
    Inscrit:
    26 Décembre 2017
    Messages:
    481
    J'aime reçus:
    89
    Code:
    RewriteEngine on
    
    RewriteCond %{HTTP_HOST} !^www.lionel-belarbi.fr$
    RewriteRule ^(.*) http://www.lionel-belarbi.fr/$1 [QSA,L,R=301]
    
    RewriteCond %{HTTPS} !=on
    RewriteRule ^ https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301]
    Le fait d'avoir dormi un peu m'a aidé. ça fonctionne c'est garanti à 200% j'ai testé c'est l'inverse de ce que je t'ai donné
     
  15. passion
    passion WRInaute accro
    Inscrit:
    6 Janvier 2006
    Messages:
    3 831
    J'aime reçus:
    160
    non snifff, toujours pareil
     
  16. Lionel Belarbi
    Lionel Belarbi WRInaute occasionnel
    Inscrit:
    26 Décembre 2017
    Messages:
    481
    J'aime reçus:
    89
    Mais c'est pas possible ! je l'ai testé et approuvé, avez-vous retiré les anciennes règles de redirection ? Dommage que j'ai pas un accès ftp. je vous le règle en deux secondes votre problème ^^ Avez-vous vidé votre cache navigateur ?

    C'est obligé que ça fonctionne, je l'ai testé ou alors jouez au loto car vous avez vraiment pas de chance !
     
  17. passion
    passion WRInaute accro
    Inscrit:
    6 Janvier 2006
    Messages:
    3 831
    J'aime reçus:
    160
    yeah !!!!! Eurekaaaaaaaaaa !
    J'ai trouvé... le truc trop con mais redoutable !
    J'avais personnalisé le Nom d'hôte du Système (monVPS.ovh.net (127.0.1.1)) afin que lorsque j'envoies des mails, j'obtiens un niveau de meilleur confiance pour les serveurs de messagerie mais je n'avais pas pensé à la répercussion sur les virtualhost. En remettant le nom de mon VPS par défaut, ma config apache à logiaquement fonctionné ! Yeah baby !

    En faisant sur la console :
    Code:
    apache2ctl -t -D DUMP_VHOSTS

    Avant:
    Code:
    VirtualHost configuration:
    *:443                  site1.fr (/etc/apache2/sites-enabled/site1.fr-le-ssl.conf:2)
    *:80                   is a NameVirtualHost
             default server site1.fr (/etc/apache2/sites-enabled/000-default.conf:1)
             port 80 namevhost site1 (/etc/apache2/sites-enabled/000-default.conf:1)
             port 80 namevhost site1.fr (/etc/apache2/sites-enabled/site1.fr.conf:1) alias www.site1.fr


    Après
    Code:
    VirtualHost configuration:
    *:443                  site1.fr (/etc/apache2/sites-enabled/site1.fr-le-ssl.conf:2)
    *:80                   is a NameVirtualHost
             default server monVPS.ovh.net (/etc/apache2/sites-enabled/000-default.conf:1)
             port 80 namevhost monVPS.ovh.net (/etc/apache2/sites-enabled/000-default.conf:1)
             port 80 namevhost site1.fr (/etc/apache2/sites-enabled/site1.fr.conf:1) alias www.site1.fr

    ça pourra toujours servir à d'autres ;)

    PS : Merci Lionel de ton aide
     
    Lionel Belarbi apprécie ceci.
  18. cthierry
    cthierry WRInaute passionné
    Inscrit:
    15 Janvier 2005
    Messages:
    2 254
    J'aime reçus:
    57
    Un code de chez stackoverflow qui trainait dans mes favoris si cela peut faire avancer le schmilblick :) En fait il le fait en deux fois comme le disait Lionel ;)

    Code:
    <VirtualHost *:80>
       ServerName www.example.com
    
       RewriteEngine On
       RewriteCond %{HTTP:X-Forwarded-Proto} !=https
       RewriteRule ^/(.*)$ https://%{SERVER_NAME}/$1 [R=301,L]
       # additional optional server config
    </VirtualHost>
    
    <VirtualHost *:80>
       ServerName example.com
       RedirectMatch permanent ^/?(.*) https://www.example.com/$1
    </VirtualHost>
    [EDIT]Grillé lol[/EDIT]
     
    Lionel Belarbi apprécie ceci.
  19. Lionel Belarbi
    Lionel Belarbi WRInaute occasionnel
    Inscrit:
    26 Décembre 2017
    Messages:
    481
    J'aime reçus:
    89
    Il manque vraiment un smiley bravo :D Bravo !!! Faut mettre résolu Monsieur ^^
     
  20. passion
    passion WRInaute accro
    Inscrit:
    6 Janvier 2006
    Messages:
    3 831
    J'aime reçus:
    160
    dsl nos messages se sont croisés. Je vous remercie de votre aide. Mon message est arrivé après cthierry
     
    Lionel Belarbi apprécie ceci.
  21. passion
    passion WRInaute accro
    Inscrit:
    6 Janvier 2006
    Messages:
    3 831
    J'aime reçus:
    160
    je n'ai pas trouvé "résolu"
     
Chargement...
Similar Threads - VirtualHost redirection 301 Forum Date
Redirection de page avec virtualhost d'apache Développement d'un site Web ou d'une appli mobile 6 Février 2017
Problème pour configurer un virtualhost avec dernière version de Easyphp Développement d'un site Web ou d'une appli mobile 17 Mai 2014
VirtualHost qui accepte tous les noms de domaines. Développement d'un site Web ou d'une appli mobile 24 Janvier 2012
Virtualhost par défaut : éternel problème Administration d'un site Web 25 Février 2011
Namevirtualhost has no virtualhosts Administration d'un site Web 7 Janvier 2010
Probleme redirection d'un sous domaine deja redirigé URL Rewriting et .htaccess Jeudi à 20:23
WordPress Redirection : 15 produits WooCommerce en un seul produit Netlinking, backlinks, liens et redirections 20 Novembre 2020
incomprehension en redirection ! Netlinking, backlinks, liens et redirections 2 Novembre 2020
Search Console Forte hausse du nombre de redirections Problèmes de référencement spécifiques à vos sites 23 Octobre 2020
Astuce redirection SEO pour bouger des pages entre silos Référencement Google 22 Octobre 2020