Redirection www => sans www ET vers https ; échec

Nouveau WRInaute
Bonjour,

Comme bcp, je ne suis pas un vrai WebMaster et ma vraie vie quotidienne est loin de l'informatique et des codes.
Je bidouille mais sans maîtrise.

Après avoir testé tellement de .htaccess différents que j'ai les yeux qui piquent
Et avant de devenir fou,
Je me résous à voir la réalité en face :
Je ne suis pas bon et j'ai vraiment besoin d'aide de pro.

La théorie est simple.
Mon site était basculé sans les www.
Jusqu'à présent, cela fonctionnait.
(je suis chez OVH)

Maintenant, je souhaite que mon site bascule sans www ET qu'il soit redirigé uniquement en https.

Naïvement, j'ai fais ces règles de redirection (dernier en date, mais pas mieux)
Code:
Options +FollowSymlinks
RewriteEngine on
RewriteCond %{SERVER_PORT} 80
RewriteRule ^(.*)$ https://exemple.truc/$1 [QSA,L,R=301]
RewriteCond %{HTTP_HOST} ^www.exemple.truc$
RewriteRule ^(.*) https://exemple.truc/$1 [QSA,L,R=301]

Mais, tout ne fonctionne pas (en rouge = erreur)
http://exemple.truc
https://exemple.truc
http://www.exemple.truc
https://www.exemple.truc
http://exemple.truc/dossier
https://exemple.truc/dossier
http://www.exemple.truc/dossier
https://www.exemple.truc/dossier

Je m'en remets donc à votre expertise :
Où est l'erreur de code ???

Merci d'avance,
 
Nouveau WRInaute
Re,

Je pense que le pb venait d'un bug chez OVH dans les créations de redirections.
Suite à des modif, j'avais recréé une redirection
Code:
www.exemple.truc	vers un domain (CNAME)	exemple.truc
Mais je viens de vérifier : il l’interprétait comme ceci :
Code:
www.exemple.truc	vers un domain (CNAME)	exemple.truc.exemple.truc

J'ai retenté plusieurs fois de modifier ; rien ; il ne voulait pas valider en "exemple.truc" uniquement.

Je pense que viens de trouver la solution et la poste "au cas où".

Dans l'espace client, je suis resté sur "Domaines", mais j'ai quitté "Redirection" pour "Zone DNS"
Ma dernière ligne était
Code:
www.exemple.truc.	0	CNAME	exemple.truc
Avec un /!\
En cliquant sur le crayon, j'ai pu demander à rajouter un "." à la fin ...
Suite à celà,
Code:
www IN CNAME exemple.truc
Est devenu
Code:
www IN CNAME exemple.truc.
De retour dans "Redirection", j'avais bien
Code:
www.exemple.truc	vers un domain (CNAME)	exemple.truc

J'ai purgé mon FireFox (suis en mode Parano) et ce n'est pas mieux, mais le test sur Tor est concluant (pays-Bas/Allemagne/Pays-Bas puis Pays-Bas/Hongrie/Moldavie.
Je vais sans doute devoir attendre la propagation.
 
Nouveau WRInaute
Bonjour,

Mes différents tests me paraissent tous indiquer que cela fonctionne.
Désolé pour le post "inutile".

Afin d'en sortir une éventuelle utilité pour autrui, je note donc ici même que toutes ces adresse sont bien basculées vers https://exemple.truc :
Code:
http://exemple.truc
http://www.exemple.truc
https://www.exemple.truc
http://exemple.truc/dossier
https://exemple.truc/dossier
http://www.exemple.truc/dossier
https://www.exemple.truc/dossier

Souci fixé ; problème résolu.

Merci à celles et ceux qui ont pris la peine de lire.

Edit : je ne peux pas modifier le message initiel pour ajouter [Résolu] dans le sujet ; un modo pourrait le faire ? Merci
 
Nouveau WRInaute
Bonsoir,

Je suis exactement dans le même cas que toi avec exactement les memes objectifs.

Je viens de perdre 2 jours complets à chercher...

Il semble qu'il y ai un bug effectivement :

Mais je viens de vérifier : il l’interprétait comme ceci :
CODE: TOUT SÉLECTIONNER
www.exemple.truc vers un domain (CNAME) exemple.truc.exemple.truc

Je crois que j'ai la même chose :

574276Capture.png


Je n'ai pas résolu mon problème, je vous tiendrai informé. Avec un peu de chanche ton post va me permettre de résoudre mon souci.
 
Nouveau WRInaute
Bon il semble que cela ne fonctionne toujours pas chez moi, mon site est https://sudoc.info si certains peuvent verifier.

Tout ce qui est en rouge ne parvient pas à rediriger vers https://exemple.truc, et se redirige vers soi même.
http://exemple.truc
https://exemple.truc
http://www.exemple.truc
https://www.exemple.truc
http://exemple.truc/dossier
https://exemple.truc/dossier
http://www.exemple.truc/dossier
https://www.exemple.truc/dossier

Voici mon htaccess :
Options +FollowSymlinks
RewriteEngine on
RewriteCond %{HTTPS} off
RewriteCond %{ENV:HTTPS} off
RewriteRule ^ https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301,NE]
RewriteCond %{HTTP_HOST} ^www\.(.+)$ [NC]
RewriteRule ^ https://%1%{REQUEST_URI} [L,R=301,NE]

Avec le Htaccess de Nabla le résultat est exactement le meme. :
Options +FollowSymlinks
RewriteEngine on
RewriteCond %{SERVER_PORT} 80
RewriteRule ^(.*)$ https://exemple.truc/$1 [QSA,L,R=301]
RewriteCond %{HTTP_HOST} ^www.exemple.truc$
RewriteRule ^(.*) https://exemple.truc/$1 [QSA,L,R=301]
 
WRInaute occasionnel
essaie un coup ceci :
Code:
<IfModule mod_rewrite.c>
    RewriteEngine On
    RewriteCond %{HTTPS} off
    RewriteRule (.*) https://%{HTTP_HOST}%{REQUEST_URI} [R,L]
</IfModule>
 
Nouveau WRInaute
Bon eh bien j'ai atteint l'objectif sans .htaccess sous ubuntu 16.04 LTS avec LAMP.

Grace à la solution présente ici : http://www.webworkerclub.com/forum/topic,80810,0.html par le pseudo bool.

C'est la fameuse commande RedirectPermanent .

Il s'agit de rajouter une section VirtualHost supplémentaire avec le nom du serveur à rediriger en permanence.

J'ai modifié le /etc/apache2/sites-available/000-default.conf :

<VirtualHost *:80>
# The ServerName directive sets the request scheme, hostname and port that
# the server uses to identify itself. This is used when creating
# redirection URLs. In the context of virtual hosts, the ServerName
# specifies what hostname must appear in the request's Host: header to
# match this virtual host. For the default virtual host (this file) this
# value is not decisive as it is used as a last resort host regardless.
# However, you must set it for any further virtual host explicitly.
#ServerName sudoc.info
ServerAdmin webmaster@localhost
DocumentRoot /xxx/xxx/xxx
# Available loglevels: trace8, ..., trace1, debug, info, notice, warn,
# error, crit, alert, emerg.
# It is also possible to configure the loglevel for particular
# modules, e.g.
#LogLevel info ssl:warn
ErrorLog ${APACHE_LOG_DIR}/error.log
CustomLog ${APACHE_LOG_DIR}/access.log combined
# For most configuration files from conf-available/, which are
# enabled or disabled at a global level, it is possible to
# include a line for only one particular virtual host. For example the
# following line enables the CGI configuration for this host only
# after it has been globally disabled with "a2disconf".
#Include conf-available/serve-cgi-bin.conf
<Directory /xx/xx/xx>
Options Indexes FollowSymLinks MultiViews
AllowOverride All
Require all granted
</Directory>
</VirtualHost>
<VirtualHost *:80>
ServerName www.sudoc.info
ServerAlias sudoc.info
ServerAlias *.sudoc.info
RedirectPermanent / https://sudoc.info/
</VirtualHost>

et le /etc/apache2/sites-available/000-default-le-ssl.conf :

<IfModule mod_ssl.c>
<VirtualHost *:443>
# The ServerName directive sets the request scheme, hostname and port that
# the server uses to identify itself. This is used when creating
# redirection URLs. In the context of virtual hosts, the ServerName
# specifies what hostname must appear in the request's Host: header to
# match this virtual host. For the default virtual host (this file) this
# value is not decisive as it is used as a last resort host regardless.
# However, you must set it for any further virtual host explicitly.
ServerAdmin webmaster@localhost
DocumentRoot /xxxx/xxxx/xxx
# Available loglevels: trace8, ..., trace1, debug, info, notice, warn,
# error, crit, alert, emerg.
# It is also possible to configure the loglevel for particular
# modules, e.g.
#LogLevel info ssl:warn
ErrorLog ${APACHE_LOG_DIR}/error.log
CustomLog ${APACHE_LOG_DIR}/access.log combined
# For most configuration files from conf-available/, which are
# enabled or disabled at a global level, it is possible to
# include a line for only one particular virtual host. For example the
# following line enables the CGI configuration for this host only
# after it has been globally disabled with "a2disconf".
#Include conf-available/serve-cgi-bin.conf
ServerName sudoc.info
Include /etc/letsencrypt/xxxxxxxxx.conf
SSLCertificateFile /xxxxxpem
SSLCertificateKeyFile /xxxxxx.pem
Include /etc/letsencrypt/options-ssl-apache.conf
</VirtualHost>
<VirtualHost *:443>
ServerName www.sudoc.info
ServerAlias *.sudoc.info
RedirectPermanent / https://sudoc.info
</VirtualHost>

</IfModule>

Merci à Bossboss de m'avoir proposé un .htaccess de son cru.
 
Discussions similaires
Haut