Comment puis-je activer https uniquement sur certaines pages avec htaccess?
J'ai un site de commerce électronique, et je veux l'activer https uniquement sur la section de commerce électronique du site, situé au https://mysite.com/buy
Puisque tous les liens sur mes pages sont relatifs, lorsque quelqu'un visite http://mysite.com et clique sur Acheter, ils sont pris à http://mysite.com/buy
Aussi, s'ils visitent https://mysite.com/buy et cliquez sur un lien vers une autre page, ils sont pris à https://mysite.com.
La raison pour laquelle je veux https uniquement sur une section est parce que j'ai des éléments extérieurs (c'est à dire Google Maps, Youtube, Twitter, etc) qui ne peuvent pas être envoyés via le protocole https.
Est-il un moyen avec htaccess que je peux faire de la /acheter répertoire force https, mais toutes les autres pages de la force http?
Edit:
Dans le cas où quelqu'un est intéressé, j'ai été en mesure de résoudre ce à l'aide de PHP. Je préfère encore un htaccess solution, mais cela fonctionne pour l'instant:
if($_SERVER['HTTPS'] == "on") {
if(strpos($_SERVER['REQUEST_URI'],"buy") === false) {
Header("Location: http://$_SERVER['HTTP_HOST']."".$_SERVER['REQUEST_URI']");
}
}
Vous devez vous connecter pour publier un commentaire.
Essayez ceci dans votre .htaccess:
R=301
redirigera avec https statut 301L
fera dernière règleNE
est pour pas échapper à la chaîne de requêteQSA
ajouter votre requête existante paramètresNC
est pour ignorer la casse comparaison$1
est votre REQUEST_URIRewriteRule ^/?(.*)$ http://mysite.com/$1 [R=301,QSA,L,NE]
àRewriteRule (.*) http://mysite.com$1 [R=301,QSA,L,NE]
Je n'ai pas de mains sur l'expérience, mais d'après ce que je vois, on dirait que le htaccess fichier de configuration de l'impact que les fichiers dans le dossier dans lequel le fichier est stocké.
De sorte que vous devriez être en mesure de faire quelque chose comme ceci:
http://www.besthostratings.com/articles/force-ssl-htaccess.html
Et le mettre dans le /acheter dossier de votre site.
Si votre page web est hébergé sur
9001
port de permettre à n'importe quel port sur votre linux et de faire ces changements dans/etc/httpd/conf.d/ssl.conf
.Ensuite, réglez votre Écoute sur le Port de9002
et de créer SSL certificat et de la clé et de mettre de configuration suivantes dans votre httpd.conf fichieret votre .fichier htaccess devrait ressembler à ceci