Question

J'ai configuré phpMyID sur l’une de mes machines et j’essaie de faire rediriger Apache à HTTPS uniquement lorsqu’un mot de passe est soumis. Je le fais car ma configuration d'origine consistant à rediriger tout le trafic openid n'a pas fonctionné. Stackoverflow n'aime pas mon certificat auto-signé. C’est la nouvelle règle que j’ai écrite, mais elle ne fonctionne pas:

RewriteRule http://%{SERVER_NAME}/openid/index.php(\?.+)$ https://%{SERVER_NAME}/openid/index.php$1
Était-ce utile?

La solution

Vous devez utiliser une Cond pour tester le port (http ou httpd) et la chaîne de requête:

RewriteCond %{SERVER_PORT} 80
RewriteCond %{QUERY_STRING} (.+)
RewriteRule /openid/index.php https://%{SERVER_NAME}/openid/index.php?%1

si sur .htaccess vous devez utiliser à la place

RewriteCond %{SERVER_PORT} 80
RewriteCond %{QUERY_STRING} (.+)
RewriteRule openid/index.php https://%{SERVER_NAME}/openid/index.php?%1

Autres conseils

Une meilleure solution serait:

    RewriteCond %{SERVER_PORT} !^443$
    RewriteRule ^openid/index\.php$ https://%{SERVER_NAME}/openid/index.php

Explication: RewriteCond% {SERVER_PORT} 80 correspond également aux ports qui incluent uniquement 80 . Il en va de même pour le modèle openid / index.php (où «. » peut également être un caractère quelconque). Et l’ajout de la requête n’est pas nécessaire, car mod_rewrite ajoute automatiquement la requête initialement demandée au substitut, à moins que la requête du substitut ne soit fournie.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top