es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

¿Cómo forzar HTTPS en todas las URL excepto en un directorio / images usando .htaccess?

Estoy utilizando WordPress y tenemos un directorio que no es un directorio de WordPress /images y necesitamos que este directorio sea solo HTTP, todo lo demás debe ser forzado a HTTPS.

En la configuración de WordPress tenemos el dominio establecido en HTTP.

Y en el archivo .htaccess tenemos lo siguiente.

No puedo hacer que esto funcione. Nuestro anfitrión es Cloudways si eso ayuda en algo.


Este archivo fue actualizado por Duplicator el 10/09/2018 a las 16:52:27. Ver .htaccess.orig para el archivo .htaccess original. Tenga en cuenta que otros plugins y recursos escriben en este archivo. Si la marca de tiempo anterior es diferente a la marca de tiempo actual en el sistema de archivos, entonces otro recurso ha actualizado este archivo. Duplicator solo escribe en este archivo una vez durante el proceso de instalación mientras se ejecuta el archivo installer.php. RewriteEngine On RewriteCond %{HTTP:X-Forwarded-SSL}!on RewriteCond %{REQUEST_URI} ^ / (imágenes) RewriteRule (. *) https: // %{HTTP_HOST} / $ 1 [L, R = 301] RewriteCond %{HTTP:X-Forwarded-SSL} = on RewriteCond %{REQUEST_URI}! ^ / (imágenes) RewriteRule (. *) Http: // %{HTTP_HOST} / $ 1 [L, R = 301] RewriteEngine On RewriteCond %{HTTPS} on RewriteRule (. *) http: // %{HTTP_Host} %{REQUEST_URI} Comience WordPress. Las directivas (líneas) entre "BEGIN WordPress" y "END WordPress" son generadas dinámicamente, y solo deben ser modificadas a través de los filtros de WordPress. Cualquier cambio en las directivas entre estas marcas será sobrescrito. <ifmodule mod_rewrite.c=""> RewriteEngine On RewriteRule .* - [E=HTTP_AUTHORIZATION:%{HTTP:Authorization}] RewriteBase / RewriteRule ^index.php$ - [L] RewriteCond %{REQUEST_FILENAME}! -f RewriteCond %{REQUEST_FILENAME}! -d RewriteRule . /index.php [L] </ifmodule> FIN WordPress MalCare WAF <files ".user.ini"=""> <ifmodule mod_authz_core.c=""> Require all denied </ifmodule> <ifmodule! mod_authz_core.c=""> Order deny, allow Denegar desde todo </ifmodule!></files> FIN MalCare WAF
Tags:  , , , ,

Answer

  1. Avatar for davy.ai

    Para forzar HTTPS para todo, excepto para el directorio /images en un sitio de WordPress, puede usar el siguiente código en su archivo .htaccess:

    RewriteEngine On
    
    # Forzar HTTPS para todo excepto para el directorio /images
    RewriteCond %{HTTPS} !=on
    RewriteCond %{REQUEST_URI} !^/images [NC]
    RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301]
    
    # Forzar HTTP para el directorio /images 
    RewriteCond %{HTTPS} on
    RewriteCond %{REQUEST_URI} ^/images [NC]
    RewriteRule ^(.*)$ http://%{HTTP_HOST}%{REQUEST_URI} [L,R=301]
    
    # BEGIN WordPress
    # ...
    

    Este código primero verifica si HTTPS no está activado (RewriteCond %{HTTPS} !=on) y si la solicitud no es para el directorio /images (RewriteCond %{REQUEST_URI} !^/images [NC]), y si ambas condiciones son verdaderas, reescribe la solicitud a HTTPS (RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301]).

    Luego, verifica si HTTPS ya está activado (RewriteCond %{HTTPS} on) y si la solicitud es para el directorio /images (RewriteCond %{REQUEST_URI} ^/images [NC]), y si ambas condiciones son verdaderas, reescribe la solicitud a HTTP (RewriteRule ^(.*)$ http://%{HTTP_HOST}%{REQUEST_URI} [L,R=301]).

    Asegúrese de colocar este código antes de la línea # BEGIN WordPress en su archivo .htaccess.

Comments are closed.