Domanda

Ho installato phpMyID su una delle mie macchine e sto cercando di ottenere apache per reindirizzare su HTTPS solo quando viene inviata una password. Lo sto facendo poiché la mia configurazione originale di reindirizzamento di tutto il traffico openid non ha funzionato con StackOverflow non mi piace il mio certificato autofirmato. Questa è la nuova regola che ho scritto, ma non funziona:

RewriteRule http://%{SERVER_NAME}/openid/index.php(\?.+)$ https://%{SERVER_NAME}/openid/index.php$1
È stato utile?

Soluzione

Devi usare un Cond per testare sia la porta (http o httpd) sia la stringa di query:

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

se su .htaccess devi usare invece

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

Altri suggerimenti

Una soluzione migliore sarebbe:

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

Spiegazione: RewriteCond% {SERVER_PORT} 80 corrisponde anche alle porte che includono solo 80 . Lo stesso vale per il pattern openid / index.php (dove & # 8220; . & # 8221; può anche essere qualsiasi carattere). E aggiungere la query non è necessario poiché mod_rewrite aggiunge automaticamente la query originariamente richiesta al sostituto a meno che non venga fornita la query del sostituto.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top