it-swarm.dev

Cambia http in https nel codice sorgente quando usi SSL

Di recente ho abilitato Force_SSL su uno dei miei siti Joomla (abilitando "Force SSL" in Global Configuration), ma ho riscontrato problemi con il contenuto bloccato (contenuto non SSL) da entrambi i caratteri di Google e diversi script esterni da JotForm .com (caricato tramite "http: //" nel modello e nei contenuti).

Per questo particolare sito ho risolto il problema esaminando il codice e cambiando ogni riferimento esterno http://... A https://... O solo //..., Ma la mia domanda è:

Questo potrebbe essere risolto più facilmente o più efficace cambiando automaticamente http://... In https://... Nel codice sorgente (con un plugin) o usando il file .htaccess?

5
johanpw

Sicuramente vuoi impostare un plugin per questo. Fondamentalmente l'obiettivo sarebbe quello di riscrivere qualsiasi http:// o https:// solo per //. Come bonus, possiamo solo fare questo controllo all'interno dei tag (quindi non influisce sugli URL solo sulla pagina.

Un plugin di sistema con questo metodo dovrebbe fare il trucco:

public function onAfterRender() {
    $buffer = JResponse::getBody();
    $pattern = '~(<[^>]{0,}["\'])(https?://)~iU';
    $replacement = '$1//';
    $buffer = preg_replace($pattern, $replacement, $buffer);
    JResponse::setBody($buffer);
}

Questo probabilmente catturerà comunque qualcosa che non vuoi sostituire con solo //, ma è un inizio!

2
David Fritsch

C'è un ottimo plugin per questo realizzato da Yireo https://www.yireo.com/software/joomla-extensions/ssl-redirect

Joomla! può essere configurato per utilizzare SSL. Ma ciò non significa che tutte le tue pagine sicure siano effettivamente protette. Questo plugin forza ciò che è effettivamente richiesto: HTTPS o HTTP.

Soprattutto, gli sviluppatori sono molto reattivi ... il che fa la differenza per me.

1
Joseph

Non è necessario utilizzare il protocollo in un collegamento js. Puoi usare // e il protocollo corretto verrà selezionato per te.

Per esempio.

<script src="//ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script>

Farei semplicemente una ricerca/sostituzione globale nel mio codice, lo lascerei così e userei //src.js andando avanti.

1
user101289