Pregunta

esta es otra pregunta de .htaccess. Y ya hice mi revisión de literatura. Agradecería cualquier ayuda.

Requisitos:

  1. Forzar HTTPS solo para unas pocas URL.
  2. El navegador no debe decir página parcialmente encriptada para páginas SSL.

Estoy usando CodeIgnitor y modifiqué el base_url en config.php para:

$config['base_url'] = (isset(

esta es otra pregunta de .htaccess. Y ya hice mi revisión de literatura. Agradecería cualquier ayuda.

Requisitos:

  1. Forzar HTTPS solo para unas pocas URL.
  2. El navegador no debe decir página parcialmente encriptada para páginas SSL.

Estoy usando CodeIgnitor y modifiqué el base_url en config.php para:

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]

Entonces, si se accede a una URL con https: // todos los enlaces contenidos en ella también estarían en HTTPS, esto es para evitar " página parcialmente encriptada " problema.

Comencé con el siguiente código 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]

Con esto, cualquier URL que tenga abc , xyz o pqr se redirigirá a HTTPS y cualquier URL que no la tenga será forzada a volver a HTTP.

Esto funcionó bien, el único problema con esto es que no puede evitar " página parcialmente encriptada " problema. Por ejemplo, si voy por url http://www.example.com/abc/ index.php , será redirigido a https: //www.example.com/abc/index.php . Pero los enlaces en esta página dicen https://www.example.com/images/ logo.png , se cambiará a HTTP debido a la última regla de reescritura. De este modo, la página está parcialmente encriptada.

También intenté agregar http_referer de esta manera para resolver este problema, pero obviamente eso no resolverá el problema. Debido a que los clics provenientes de una página HTTPS nunca se convertirían a HTTP.

<*>

Solo quiero saber si hay un mejor enfoque disponible para este simple problema o si lo estoy haciendo de manera incorrecta. ¿El uso de ganchos de CI en lugar de .htaccess resolverá esto?

Gracias de antemano

SERVER['HTTPS']) &&

esta es otra pregunta de .htaccess. Y ya hice mi revisión de literatura. Agradecería cualquier ayuda.

Requisitos:

  1. Forzar HTTPS solo para unas pocas URL.
  2. El navegador no debe decir página parcialmente encriptada para páginas SSL.

Estoy usando CodeIgnitor y modifiqué el base_url en config.php para:

<*>

Entonces, si se accede a una URL con https: // todos los enlaces contenidos en ella también estarían en HTTPS, esto es para evitar " página parcialmente encriptada " problema.

Comencé con el siguiente código htaccess:

<*>

Con esto, cualquier URL que tenga abc , xyz o pqr se redirigirá a HTTPS y cualquier URL que no la tenga será forzada a volver a HTTP.

Esto funcionó bien, el único problema con esto es que no puede evitar " página parcialmente encriptada " problema. Por ejemplo, si voy por url http://www.example.com/abc/ index.php , será redirigido a https: //www.example.com/abc/index.php . Pero los enlaces en esta página dicen https://www.example.com/images/ logo.png , se cambiará a HTTP debido a la última regla de reescritura. De este modo, la página está parcialmente encriptada.

También intenté agregar http_referer de esta manera para resolver este problema, pero obviamente eso no resolverá el problema. Debido a que los clics provenientes de una página HTTPS nunca se convertirían a HTTP.

<*>

Solo quiero saber si hay un mejor enfoque disponible para este simple problema o si lo estoy haciendo de manera incorrecta. ¿El uso de ganchos de CI en lugar de .htaccess resolverá esto?

Gracias de antemano

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

esta es otra pregunta de .htaccess. Y ya hice mi revisión de literatura. Agradecería cualquier ayuda.

Requisitos:

  1. Forzar HTTPS solo para unas pocas URL.
  2. El navegador no debe decir página parcialmente encriptada para páginas SSL.

Estoy usando CodeIgnitor y modifiqué el base_url en config.php para:

<*>

Entonces, si se accede a una URL con https: // todos los enlaces contenidos en ella también estarían en HTTPS, esto es para evitar " página parcialmente encriptada " problema.

Comencé con el siguiente código htaccess:

<*>

Con esto, cualquier URL que tenga abc , xyz o pqr se redirigirá a HTTPS y cualquier URL que no la tenga será forzada a volver a HTTP.

Esto funcionó bien, el único problema con esto es que no puede evitar " página parcialmente encriptada " problema. Por ejemplo, si voy por url http://www.example.com/abc/ index.php , será redirigido a https: //www.example.com/abc/index.php . Pero los enlaces en esta página dicen https://www.example.com/images/ logo.png , se cambiará a HTTP debido a la última regla de reescritura. De este modo, la página está parcialmente encriptada.

También intenté agregar http_referer de esta manera para resolver este problema, pero obviamente eso no resolverá el problema. Debido a que los clics provenientes de una página HTTPS nunca se convertirían a HTTP.

<*>

Solo quiero saber si hay un mejor enfoque disponible para este simple problema o si lo estoy haciendo de manera incorrecta. ¿El uso de ganchos de CI en lugar de .htaccess resolverá esto?

Gracias de antemano

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

esta es otra pregunta de .htaccess. Y ya hice mi revisión de literatura. Agradecería cualquier ayuda.

Requisitos:

  1. Forzar HTTPS solo para unas pocas URL.
  2. El navegador no debe decir página parcialmente encriptada para páginas SSL.

Estoy usando CodeIgnitor y modifiqué el base_url en config.php para:

<*>

Entonces, si se accede a una URL con https: // todos los enlaces contenidos en ella también estarían en HTTPS, esto es para evitar " página parcialmente encriptada " problema.

Comencé con el siguiente código htaccess:

<*>

Con esto, cualquier URL que tenga abc , xyz o pqr se redirigirá a HTTPS y cualquier URL que no la tenga será forzada a volver a HTTP.

Esto funcionó bien, el único problema con esto es que no puede evitar " página parcialmente encriptada " problema. Por ejemplo, si voy por url http://www.example.com/abc/ index.php , será redirigido a https: //www.example.com/abc/index.php . Pero los enlaces en esta página dicen https://www.example.com/images/ logo.png , se cambiará a HTTP debido a la última regla de reescritura. De este modo, la página está parcialmente encriptada.

También intenté agregar http_referer de esta manera para resolver este problema, pero obviamente eso no resolverá el problema. Debido a que los clics provenientes de una página HTTPS nunca se convertirían a HTTP.

<*>

Solo quiero saber si hay un mejor enfoque disponible para este simple problema o si lo estoy haciendo de manera incorrecta. ¿El uso de ganchos de CI en lugar de .htaccess resolverá esto?

Gracias de antemano

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

Entonces, si se accede a una URL con https: // todos los enlaces contenidos en ella también estarían en HTTPS, esto es para evitar " página parcialmente encriptada " problema.

Comencé con el siguiente código htaccess:

<*>

Con esto, cualquier URL que tenga abc , xyz o pqr se redirigirá a HTTPS y cualquier URL que no la tenga será forzada a volver a HTTP.

Esto funcionó bien, el único problema con esto es que no puede evitar " página parcialmente encriptada " problema. Por ejemplo, si voy por url http://www.example.com/abc/ index.php , será redirigido a https: //www.example.com/abc/index.php . Pero los enlaces en esta página dicen https://www.example.com/images/ logo.png , se cambiará a HTTP debido a la última regla de reescritura. De este modo, la página está parcialmente encriptada.

También intenté agregar http_referer de esta manera para resolver este problema, pero obviamente eso no resolverá el problema. Debido a que los clics provenientes de una página HTTPS nunca se convertirían a HTTP.

<*>

Solo quiero saber si hay un mejor enfoque disponible para este simple problema o si lo estoy haciendo de manera incorrecta. ¿El uso de ganchos de CI en lugar de .htaccess resolverá esto?

Gracias de antemano

¿Fue útil?

Solución 2

De acuerdo. Creo que encontré la solución. También lo probé en mi servidor. funciona bien .. necesitaba una condición de referencia http también en la reescritura

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]

Ahora, si visita alguna de las páginas con (abc, xyz, pqr), será redirigido a https: // ... También todo el enlace incrustado se servirá desde https. para que el navegador no muestre la advertencia de cifrado parcial (señal de advertencia roja en la barra de estado)

cuando se aleja de cualquiera de estas páginas, esa página estará en ssl debido a la verificación del árbitro, y esta página puede mostrar una advertencia parcialmente encriptada (pero puedo vivir con ella). Una vez que se aleje de esta página, todo será no ssl.

¡Espero que esto ayude a alguien!

Otros consejos

Puede poner su contenido estático en un dominio diferente como static.example.com y deshabilitar el redireccionamiento HTTPS a HTTP para tales solicitudes.

Use //static.example.com/… para hacer referencia a esos recursos para usar el mismo esquema URI que el documento en el que se encuentra la referencia y probar en su RewriteRule si se solicita dicho recurso:

RewriteCond %{HTTPS} on
RewriteCond %{HTTP_HOST} !=static.example.com
RewriteRule !(^|/)(abc|xyz|pqr) http://%{HTTP_HOST}%{REQUEST_URI} [R=301,NC,L]
Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top