bonjour à tous,
je me prépare à passer un forum en https.
le problème c'est que je souhaite exclure quelques pages de la redirection permanente http -> https.
les pages à exclure ne font pas partie du CMS du forum, ce sont des pages statiques en .php
voici ce que j'ai actuellement dans mon htaccess :
> # HERE IS A GOOD PLACE TO FORCE CANONICAL DOMAIN
> RewriteCond %{HTTP_HOST} !^forum.domaine.fr$ [NC]
> RewriteRule ^(.)$ http://forum.domaine.fr/$1 [QSA,L,R=301]
Voici ce que je pense mettre à la place des lignes ci-dessus pour le passage http -> https :
RewriteCond %{SERVER_PORT} 80
RewriteCond %{REQUEST_URI} !^/page-a-exclure(.)
RewriteCond %{REQUEST_URI} !^/autre-page-a-exclure(.)
RewriteRule ^(.)$ https://forum.domaine.fr/$1 [R,L]
Est-ce que ça vous semble correct ?
Merci !
Comme ça de prime abord oui.
Après normalement pour ton forum, il faut sûrement activer le https dans le panneau admin de ton forum.
C'est quel moteur /CMS ? Phpbb ? Smf ? Autre ?
Merci pour ta réponse Buddy.
Oui c'est un phpBB, je pense avoir trouvé les manips à faire côté CMS mais il faut absolument que mes pages à exclure restent en http. Ces pages à exclure ne sont pas générées par le CMS mais sont de type `> http://forum.domaine.fr/page.php` ce sont des pages statiques codées à la main et uploadées via FTP
Avec le code que tu as donné ça doit marcher.
Il faudra que tu actives le https dans phpbb, ca ne concernera que les pages phpbb.
D'accord je vais essayer ça.
Qu'en est il de la différence entre
> [QSA,L,R=301] (fin du code actuel)
et
> [R,L] (fin du nouveau code) ?
Il me faudrait des redirections permanentes 301
Il vaut mieux celle avec R=301
Tu peux tester la Redirection via ce site http://testuri.org/sniffer en analysant les header
Oui cela semble correct mais il faut ajouter :
RewriteCond %{SERVER_PORT} !80
RewriteCond %{REQUEST_URI} ^/page-a-exclure(.)
RewriteCond %{REQUEST_URI} ^/autre-page-a-exclure(.)
RewriteRule ^(.*)$ http://forum.domaine.fr/$1 [R,L]
Sinon à partir d'un autre page du site tu retombes en https.
@Daniel60, merci pour ta contribution, tu as juste ajouté le point d'exclamation avant le 80 c'est ça ?
peux-tu préciser ce que tu entends pas ta dernière phrase stp merci ?
j'ai mis en place le code donné dans mon premier post et tout semble fonctionner à merveille : un superbe cadenas vert, et tout est redirigé en httpS sauf les pages à exclure
tu as juste ajouté le point d'exclamation avant le 80 c'est ça ?
...et supprimé ceux devant les pages concernées.
Je veux dire si tu appelle ces pages à exclure à partir d'une page https du site tu peux ne pas repasser en http.
Non a priori c'est bon, j'ai bien des liens vers ces pages http dans mes pages https et ces pages liées restent bien en http lorsque l'on arrive dessus
Est-ce que quelqu'un sait comment est choisi le "common name" (domaine principal) du certificat ?
J'ai fait un test ssllabs.com, le common name était celui du tout premier "multisite" présent dans le manager par ordre alphabétique ; j'ai supprimé le certificat de tous les multisites qui ne m'intéressent pas, régénéré le certificat, et là je vois que le "common name" du nouveau certificat est celui de mon domaine principal (celui rattaché à mon hébergement).
Y a-t-il un moyen de choisir ce common name parmi la liste des "alternatives names" ?
Sur le certificat gratuit non.
Attention tu es limite à 5 certificats gratuits par mois.. Limite lets encrypts. Donc si tu cliques plein de fois sur régénérer…
Merci pour l'info, OVH devrait (mieux ?) le préciser car je n'ai pas vu cette info.
Je n'ai effectué qu'une seule régénération et tout me convient maintenant (c'était surtout pour éviter de rendre publique la liste de mes autres sites et domaines sur cet hébergement … en effet n'importe qui a accès à l'ensemble de vos sites en effectuant un simple test ssllabs)
Rebonjour, j'ai encore besoin de vos lumières pour un autre cas.
Je dois passer en https et sans les www, uniquement un dossier.
J'ai donc
`http://domaine.tld/dossier/fichier.html`
que je veux passer en https :
`https://domaine.tld/dossier/fichier.html`
ça j'y suis arrivé, avec le code suivant placé dans le dossier en question :
RewriteEngine on
RewriteBase /dossier/
RewriteCond %{SERVER_PORT} 80
RewriteRule ^(.*)$ https://domaine.tld/dossier/$1 [QSA,L,R=301]
ça fonctionne très bien pour rediriger les url http vers https.
maintenant j'aimerais aussi que les url avec www, de type
http://www.domaine.tld/dossier/fichier.html
https://www.domaine.tld/dossier/fichier.html
soient redirigées vers
`https://domaine.tld/dossier/fichier.html`
j'ai essayé pas mal de choses mais la plupart me renvoient vers une 404 sans /dossier/
`https://domaine.tld/fichier.html`
une idée ?
Essaye ceci
Inspiré de
https://www.how-to.ovh/viewtopic.php?t=42#p704
[quote]
RewriteEngine on
RewriteBase /dossier/
RewriteCond %{SERVER_PORT} 80 [OR]
RewriteCond %{HTTP_HOST} ^www.domaine.tld$ [NC]
RewriteRule ^(.*)$ https://domaine.tld/dossier/$1 [QSA,L,R=301]
[/quote]
ça fonctionne à merveille un grand merci à toi
Rebonjour ![]()
Nouveau défi aujourd'hui, je cherche à passer un domaine en HTTPS, sans WWW, sauf un /repertoire/ qui doit rester en HTTP (mais toujours sans WWW).
Voici ce que je pense utiliser, qu'en pensez-vous ? Je doute surtout sur la 3ème ligne concernant le /repertoire/ à exclure du HTTPS :
> RewriteEngine on
> RewriteCond %{SERVER_PORT} 80 [OR]
> RewriteCond %{REQUEST_URI} !^/repertoire/
> RewriteCond %{HTTP_HOST} ^www.domaine.tld$ [NC]
> RewriteRule ^(.*)$ https://domaine.tld/$1 [QSA,L,R=301]
Merci beaucoup
RewriteCond %{SERVER_PORT} 80 [OR]
RewriteCond %{REQUEST_URI} !^/repertoire/
Plutôt comme ça :
RewriteCond %{REQUEST_URI} !^/repertoire/
RewriteCond %{SERVER_PORT} 80 [OR]
...
D'accord je vais essayer ça. Une dernière confirmation : le slash final est-il correct à la ligne suivante :
`RewriteCond %{REQUEST_URI} !^/repertoire/`
En effet, j'ai aussi des fichiers de type
domaine.tld/repertoire.php
domaine.tld/repertoire-machin-truc.html
qui, eux, doivent passer en https.
Seules les URL du /repertoire/ doivent être exclues du https, çàd les URL de type :
`domaine.tld/repertoire/fichier.html`
