.htaccess de redirection www à la non-www avec SSL/HTTPS
J'ai plusieurs domaines d'exploitation sous une seule .htaccess
fichier, chacun ayant un certificat SSL.
J'ai besoin de la force d'un https
préfixe sur tous les domaines, tout en garantissant la www
versions rediriger vers no-www
ceux.
Ci-dessous mon code, ça ne fonctionne pas:
RewriteCond %{HTTP_HOST} ^www.%{HTTP_HOST}
RewriteRule ^.*$ https://%{HTTP_HOST}%{REQUEST_URI}/$1 [R=301,L]
Ce que je veux réaliser est: rediriger quelque chose comme https://www.example.com
à https://example.com
.
Ce que je fais mal et comment puis-je l'atteindre?
- Espérons que cette aide, il explique également ce qui est meilleur pour le RÉFÉRENCEMENT aussi. wpza.net/redirect-wordpress-to-https-using-htaccess-file
Vous devez vous connecter pour publier un commentaire.
www non www avec https
Votre condition ne sera jamais vrai, parce que l'un de ses semblables "if (a == a + b)".
Je voudrais essayer le suivant:
Cela permettra de capturer "google.com" à partir de "www.google.com" dans %1, le reste de 1 $et après que la combinaison de 2, quand HTTP_HOST commence par www (avec ou sans https).
Ref: Apache redirection www à la non-www et de HTTP à HTTPS
Si, au lieu de example.com vous voulez l'URL par défaut pour être http://www.example.com, alors il suffit de modifier le troisième et le cinquième lignes:
À appliquer non-www et https en une seule requête, vous pouvez utiliser la Règle suivante dans votre htaccess :
Cette redirige http://www.example.com/ ou https://www.example.com/ ssl non-www https://example.com/ .
Je suis en utilisant R Temp Rediriger drapeau pour des tests et pour éviter la mise en cache du navigateur. Si vous voulez faire de la redirection permanente , il suffit de changer le R drapeau à R=301 .
Certificat doit couvrir à la fois les www et non https www. Certains fournisseur de certificats de couverture à la fois pour http://www.xxxx.yyy, mais seulement un pour xxxx.yyy.
Tour sur réécrit:
Faire tous http utilisez https:
Faire seulement www https l'utilisation de la non-www https:
Ne peut pas être le traitement de la non-www https, sinon une boucle se produit.
Dans [L,R=301]:
Plus générique
Une approche plus générique-pas de port à charge-est:
de faire une url avec
www
tomber.à force de non-url https, même à ceux du système en aval de load-balancers que la baisse https, utilisez le protocole https.
Noter que je n'ai pas testé le
forwarded
options, ce serait apprécions les commentaires sur toutes les questions avec eux. Ces lignes pourraient être de gauche si votre système n'est pas derrière un répartiteur de charge.À HTTP_HOST ou pas
Vous pouvez utiliser
${HTTP_HOST}
de faire partie de l'URL dans laRewriteRule
, ou vous pouvez utiliser votre explicites nom de domaine canonique du texte (xxxx.yyy
ci-dessus).En précisant le nom de domaine explicitement assure qu'aucune léger-de-la main de caractères-flexion moyens sont utilisés dans le manuel fourni URL, éventuellement, de tromper votre site en faisant quelque chose qu'il pourrait ne pas être préparé pour, ou au moins s'assure que le bon nom de domaine s'affiche dans la barre d'adresse, indépendamment de la chaîne d'URL a ouvert la page.
Il pourrait même aider à convertir punycode codé domaines de montrer le bon de caractères unicode dans la barre d'adresse.
Cela a fonctionné pour moi:
Cela a fonctionné pour moi, après beaucoup d'essais et d'erreur. La première partie est de l'utilisateur ci-dessus et la capture http://www.xxx.yyy et de l'envoyer à https://xxx.yyy
Partie 2 examine URL saisi et vérifie si le protocole HTTPS, si pas, il envoie HTTPS
Fait dans cet ordre, il suit la logique et aucune erreur ne se produit.
VOICI ma version COMPLÈTE à côté htaccess avec WordPress:
Cela fonctionne parfaitement pour moi!
Pour moi, c'était mieux coder en dur "example.com" en tant que chaîne de caractères, j'ai donc besoin de moins de règles, vous pouvez même l'utiliser pour rediriger .org pour .com ou similaire aussi: