htaccess redirection vers HTTPS à l'exception de quelques url
Je suis nouveau sur le htaccess rediriger les choses mais de faire qch spécial - et je ne sais pas quel est le recommander façon et ne sais pas si c'est encore possible ou pas.
J'ai ceci dans mon .htaccess:
RewriteCond %{HTTPS} off
RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301]
RewriteCond %{HTTP_HOST} !^www\.
RewriteRule ^(.*)$ https://www.%{HTTP_HOST}%{REQUEST_URI} [L,R=301]
Maintenant, toutes les URL est redirigée vers la version HTTPS - c'est très bien et necessery. Mais maintenant, il y a quelques exceptions.
Par exemple ces url doit être en HTTP au lieu de HTTPS:
http://www.mywebsite.com/another/url/which/has/to/be/http
http://www.mywebsite.com/and_again?var=a
Est-il possible de résoudre ce avec le htaccess et quand c'est possible, peut-être que vous pouvez m'envoyer un lien de référence ou de décrire comment le faire.
Modifier
J'ai maintenant ce code:
RewriteCond %{HTTP_HOST} !^www\.
RewriteRule ^ https://www.%{HTTP_HOST}%{REQUEST_URI} [L,R=301]
RewriteCond %{HTTPS} off
RewriteCond %{THE_REQUEST} !\s/+(/commerce_paypal/*)\s [NC]
RewriteRule ^ https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301]
L'objectif est que chaque (!) url est redirigée vers HTTPS à l'exception de TOUTE url qui a commerce_paypal au début.
Par exemple:
mydomain.com/commerce_paypal <- http
mydomain.com/commerce_paypal/smth/else <- http
mydomain.com/what/ever <- https
OriginalL'auteur TJR | 2014-10-17
Vous devez vous connecter pour publier un commentaire.
Vous pouvez avoir un
RewriteCond
pour ajouter des exceptions dans lehttp->http
règle:Référence: Mod_rewrite d'Apache Introduction
Mod_rewrite d'Apache Détails Techniques
Plutôt que des commentaires pouvez-vous poster le code en question pour le rendre lisible.
Oui...bien sûr. J'ai copié à la question
Merci beaucoup! Cela m'a aidé 🙂 Super!
votre solution travaillé localement pour moi, mais mon environnement de test est derrière un répartiteur de charge et de rester coincé dans une infinie boucle de redirection. J'ai ajouté
RewriteCond %{HTTP:X-Forwarded-Proto} !https
pour attraper toutes les Url, sauf pour mon one exclus de l'URL et de l'envoyer à l'adresse HTTPS. Ensuite, dans le deuxième bloc de rediriger mon une URL HTTP, j'ai ajoutéRewriteCond %{HTTP:X-Forwarded-Proto} =https
par la recommandation ici: docs.acquia.com/article/...OriginalL'auteur anubhava
a fonctionné pour moi. J'ai essayé beaucoup de semblables condition réécrit sans chance.
OriginalL'auteur Ray