Domanda

questa è l'ennesima domanda .htaccess. E ho già fatto la mia revisione della letteratura. Gradirei qualsiasi aiuto.

Requisiti:

  1. Forza HTTPS solo per alcuni URL.
  2. Il browser non dovrebbe dire pagina parzialmente crittografata per pagine SSL.

Sto usando CodeIgnitor e ho modificato base_url in config.php in:

$config['base_url'] = (isset(

questa è l'ennesima domanda .htaccess. E ho già fatto la mia revisione della letteratura. Gradirei qualsiasi aiuto.

Requisiti:

  1. Forza HTTPS solo per alcuni URL.
  2. Il browser non dovrebbe dire pagina parzialmente crittografata per pagine SSL.

Sto usando CodeIgnitor e ho modificato base_url in config.php in:

RewriteCond %{HTTPS} !on
RewriteRule ^(.*)/(abc|xyz|pqr)(.*)$ https://%{HTTP_HOST}/cart/$2$3 [R=301,NC,L]

RewriteCond %{HTTPS} on
RewriteCond %{REQUEST_URI} !^(.*)/(abc|xyz|pqr)(.*)$ [NC]
RewriteRule (.*) http://%{HTTP_HOST}%{REQUEST_URI} [R=301,NC,L]

Quindi, se si accede a un URL con https: // tutti i collegamenti in esso contenuti sarebbero anche su HTTPS, questo per evitare "una pagina parzialmente criptata" problema.

Ho iniziato con il seguente codice htaccess:

RewriteCond %{HTTPS} !on
RewriteRule ^(.*)/(abc|xyz|pqr)(.*)$ https://%{HTTP_HOST}/cart/$2$3 [R=301,NC,L]

RewriteCond %{HTTPS} on
RewriteCond %{HTTP_REFERER} !^(https)(.*)$
RewriteCond %{REQUEST_URI} !^(.*)/(abc|xyz|pqr)(.*)$ [NC]
RewriteRule (.*) http://%{HTTP_HOST}%{REQUEST_URI} [R=301,NC,L]

In questo modo qualsiasi URL con abc , xyz o pqr verrà reindirizzato a HTTPS e qualsiasi URL che non lo possiede verrà forzato a HTTP.

Questo ha funzionato bene, l'unico problema è che non è in grado di evitare la pagina parzialmente criptata " problema. Ad esempio, se scelgo url http://www.example.com/abc/ index.php , verrà reindirizzato a https: //www.example.com/abc/index.php . Ma i link in questa pagina dicono https://www.example.com/images/ logo.png , verrà modificato in HTTP a causa di quest'ultima regola di riscrittura. Rendendo quindi la pagina parzialmente crittografata.

Ho anche provato ad aggiungere http_referer in questo modo per risolvere questo problema, ma ovviamente questo non risolverà il problema. Perché qualsiasi clic proveniente da una pagina HTTPS non verrebbe mai convertito in HTTP.

<*>

Voglio solo sapere se esiste un approccio migliore disponibile a questo semplice problema o lo sto facendo nel modo sbagliato. L'uso di hook CI anziché .htaccess risolverà questo problema?

Grazie in anticipo

SERVER['HTTPS']) &&

questa è l'ennesima domanda .htaccess. E ho già fatto la mia revisione della letteratura. Gradirei qualsiasi aiuto.

Requisiti:

  1. Forza HTTPS solo per alcuni URL.
  2. Il browser non dovrebbe dire pagina parzialmente crittografata per pagine SSL.

Sto usando CodeIgnitor e ho modificato base_url in config.php in:

<*>

Quindi, se si accede a un URL con https: // tutti i collegamenti in esso contenuti sarebbero anche su HTTPS, questo per evitare "una pagina parzialmente criptata" problema.

Ho iniziato con il seguente codice htaccess:

<*>

In questo modo qualsiasi URL con abc , xyz o pqr verrà reindirizzato a HTTPS e qualsiasi URL che non lo possiede verrà forzato a HTTP.

Questo ha funzionato bene, l'unico problema è che non è in grado di evitare la pagina parzialmente criptata " problema. Ad esempio, se scelgo url http://www.example.com/abc/ index.php , verrà reindirizzato a https: //www.example.com/abc/index.php . Ma i link in questa pagina dicono https://www.example.com/images/ logo.png , verrà modificato in HTTP a causa di quest'ultima regola di riscrittura. Rendendo quindi la pagina parzialmente crittografata.

Ho anche provato ad aggiungere http_referer in questo modo per risolvere questo problema, ma ovviamente questo non risolverà il problema. Perché qualsiasi clic proveniente da una pagina HTTPS non verrebbe mai convertito in HTTP.

<*>

Voglio solo sapere se esiste un approccio migliore disponibile a questo semplice problema o lo sto facendo nel modo sbagliato. L'uso di hook CI anziché .htaccess risolverà questo problema?

Grazie in anticipo

SERVER['HTTPS']=='on') ? 'https://' : 'http://' ; $config['base_url'] .=

questa è l'ennesima domanda .htaccess. E ho già fatto la mia revisione della letteratura. Gradirei qualsiasi aiuto.

Requisiti:

  1. Forza HTTPS solo per alcuni URL.
  2. Il browser non dovrebbe dire pagina parzialmente crittografata per pagine SSL.

Sto usando CodeIgnitor e ho modificato base_url in config.php in:

<*>

Quindi, se si accede a un URL con https: // tutti i collegamenti in esso contenuti sarebbero anche su HTTPS, questo per evitare "una pagina parzialmente criptata" problema.

Ho iniziato con il seguente codice htaccess:

<*>

In questo modo qualsiasi URL con abc , xyz o pqr verrà reindirizzato a HTTPS e qualsiasi URL che non lo possiede verrà forzato a HTTP.

Questo ha funzionato bene, l'unico problema è che non è in grado di evitare la pagina parzialmente criptata " problema. Ad esempio, se scelgo url http://www.example.com/abc/ index.php , verrà reindirizzato a https: //www.example.com/abc/index.php . Ma i link in questa pagina dicono https://www.example.com/images/ logo.png , verrà modificato in HTTP a causa di quest'ultima regola di riscrittura. Rendendo quindi la pagina parzialmente crittografata.

Ho anche provato ad aggiungere http_referer in questo modo per risolvere questo problema, ma ovviamente questo non risolverà il problema. Perché qualsiasi clic proveniente da una pagina HTTPS non verrebbe mai convertito in HTTP.

<*>

Voglio solo sapere se esiste un approccio migliore disponibile a questo semplice problema o lo sto facendo nel modo sbagliato. L'uso di hook CI anziché .htaccess risolverà questo problema?

Grazie in anticipo

SERVER['HTTP_HOST']; $config['base_url'] .= preg_replace('@/+$@','',dirname(

questa è l'ennesima domanda .htaccess. E ho già fatto la mia revisione della letteratura. Gradirei qualsiasi aiuto.

Requisiti:

  1. Forza HTTPS solo per alcuni URL.
  2. Il browser non dovrebbe dire pagina parzialmente crittografata per pagine SSL.

Sto usando CodeIgnitor e ho modificato base_url in config.php in:

<*>

Quindi, se si accede a un URL con https: // tutti i collegamenti in esso contenuti sarebbero anche su HTTPS, questo per evitare "una pagina parzialmente criptata" problema.

Ho iniziato con il seguente codice htaccess:

<*>

In questo modo qualsiasi URL con abc , xyz o pqr verrà reindirizzato a HTTPS e qualsiasi URL che non lo possiede verrà forzato a HTTP.

Questo ha funzionato bene, l'unico problema è che non è in grado di evitare la pagina parzialmente criptata " problema. Ad esempio, se scelgo url http://www.example.com/abc/ index.php , verrà reindirizzato a https: //www.example.com/abc/index.php . Ma i link in questa pagina dicono https://www.example.com/images/ logo.png , verrà modificato in HTTP a causa di quest'ultima regola di riscrittura. Rendendo quindi la pagina parzialmente crittografata.

Ho anche provato ad aggiungere http_referer in questo modo per risolvere questo problema, ma ovviamente questo non risolverà il problema. Perché qualsiasi clic proveniente da una pagina HTTPS non verrebbe mai convertito in HTTP.

<*>

Voglio solo sapere se esiste un approccio migliore disponibile a questo semplice problema o lo sto facendo nel modo sbagliato. L'uso di hook CI anziché .htaccess risolverà questo problema?

Grazie in anticipo

SERVER['SCRIPT_NAME'])).'/';

Quindi, se si accede a un URL con https: // tutti i collegamenti in esso contenuti sarebbero anche su HTTPS, questo per evitare "una pagina parzialmente criptata" problema.

Ho iniziato con il seguente codice htaccess:

<*>

In questo modo qualsiasi URL con abc , xyz o pqr verrà reindirizzato a HTTPS e qualsiasi URL che non lo possiede verrà forzato a HTTP.

Questo ha funzionato bene, l'unico problema è che non è in grado di evitare la pagina parzialmente criptata " problema. Ad esempio, se scelgo url http://www.example.com/abc/ index.php , verrà reindirizzato a https: //www.example.com/abc/index.php . Ma i link in questa pagina dicono https://www.example.com/images/ logo.png , verrà modificato in HTTP a causa di quest'ultima regola di riscrittura. Rendendo quindi la pagina parzialmente crittografata.

Ho anche provato ad aggiungere http_referer in questo modo per risolvere questo problema, ma ovviamente questo non risolverà il problema. Perché qualsiasi clic proveniente da una pagina HTTPS non verrebbe mai convertito in HTTP.

<*>

Voglio solo sapere se esiste un approccio migliore disponibile a questo semplice problema o lo sto facendo nel modo sbagliato. L'uso di hook CI anziché .htaccess risolverà questo problema?

Grazie in anticipo

È stato utile?

Soluzione 2

Va ??bene. Penso di aver trovato la soluzione. l'ho provato anche sul mio server. funziona bene .. era necessaria anche una condizione di riferimento HTTP nella riscrittura

RewriteCond %{HTTPS} !on
RewriteRule ^(.*)/(abc|xyz|pqr)(.*)$ https://%{HTTP_HOST}/cart/$2$3 [R=301,NC,L]

RewriteCond %{HTTPS} on
RewriteCond %{HTTP_REFERER} !^https(.*)/(abc|xyz|pqr)(.*)$ [NC]
RewriteCond %{REQUEST_URI} !^(.*)/(abc|xyz|pqr)(.*)$ [NC]
RewriteRule (.*) http://%{HTTP_HOST}%{REQUEST_URI} [R=301,NC,L]

Ora se visiti una delle pagine con (abc, xyz, pqr) verrà reindirizzato a https: // ... anche tutto il collegamento incorporato sarà servito da https. pertanto il browser non mostrerà l'avviso di crittografia parziale (segnale di avvertimento rosso nella barra di stato)

quando ti allontani da una qualsiasi di queste pagine, quella pagina sarà su ssl a causa del controllo dei referer, e questa pagina potrebbe mostrare un avviso parzialmente criptato (ma posso conviverci). Una volta che ti allontani da questa pagina, tutto sarà non ssl.

Spero che questo aiuti qualcuno !!!

Altri suggerimenti

Puoi mettere i tuoi contenuti statici su un dominio diverso come static.example.com e disabilitare il reindirizzamento da HTTPS a HTTP per tali richieste.

Usa //static.example.com/… per fare riferimento a tali risorse per utilizzare lo stesso schema URI del documento in cui è contenuto il riferimento e testare nel tuo RewriteRule se è richiesta tale risorsa:

RewriteCond %{HTTPS} on
RewriteCond %{HTTP_HOST} !=static.example.com
RewriteRule !(^|/)(abc|xyz|pqr) http://%{HTTP_HOST}%{REQUEST_URI} [R=301,NC,L]
Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top