Necesito obligar a redirigir todas las páginas de Apache a HTTPS, salvo algunas páginas. ¿Cómo escribir la regla de reescritura en Apache para esta condición?Cómo forzar la reescritura a HTTPS a excepción de unas pocas páginas en Apache?
6
A
Respuesta
18
RewriteEngine On
RewriteCond %{HTTPS} =off
RewriteCond %{REQUEST_URI} !^\/page1\/
RewriteCond %{REQUEST_URI} !^\/page2\/
RewriteRule (.*) https://%{HTTP_HOST}/$1 [L,R=301]
RewriteCond %{HTTPS} =on
RewriteCond %{REQUEST_URI} \/page1\/ [OR]
RewriteCond %{REQUEST_URI} \/page2\/
RewriteRule (.*) http://%{HTTP_HOST}/$1 [L,R=301]
El primer conjunto de reglas va a redirigir todas las páginas no se accede a través de HTTPS, y que no son /page1/
o /page2/
a la misma URL pero https://
. El segundo conjunto de reglas se asegurará de que /page1/
y /page2/
sean redirigidos de nuevo a http://
si se accede a ellos a través del https://
.
5
Una solución más sencilla:
RedirectMatch ^((?!\/(page1|page2)).*)$ https://%{HTTP_HOST}$1
Esto redireccionará todo excepto la Página 1 y página 2 a https de la máquina actual.
Cuestiones relacionadas
- 1. Látex - Cambie los márgenes de solo unas pocas páginas
- 2. Ayuda descifrar unas pocas líneas de ensamblaje
- 3. ¿Puedo reducir el código de la máquina de afeitar a solo unas pocas líneas?
- 4. ¿Cómo ofuscar solo unas pocas clases o un solo paquete?
- 5. htaccess redirigir 4 páginas específicas a https
- 6. cómo forzar https
- 7. Python para un programador aficionado (unas pocas preguntas)
- 8. Apache reescritura excepción de no incluir directorios específicos
- 9. Permanente redirigir a través de reglas de reescritura de Apache
- 10. ASP.NET MVC3 redirigir desde https a http
- 11. Reescritura de URL en apache según el valor de cookie
- 12. ¿Cómo forzar a Java a lanzar una excepción aritmética?
- 13. Reescritura de URL https: // http: // en IIS7
- 14. Cómo forzar HTTPS en un directorio Y forzar la autenticación HTTPS
- 15. ¿Cómo devuelvo TODAS las columnas en una tabla y solo unas pocas en otra usando join?
- 16. ¿Cómo seleccionar solo unas pocas columnas en mi consulta de NHibernate?
- 17. Reescritura de Apache basada en el subdominio
- 18. ¿Cómo forzar a Google Chrome a mostrar la traza inversa en la excepción?
- 19. ¿Cómo reescribir desde solicitudes http a https en páginas específicas de mi sitio?
- 20. Clojure/Noir: Forzar HTTPS, redirigir si la solicitud fue http: // a https: //
- 21. Agregar soporte https a Apache Bench en Windows
- 22. Forzar no-www y https a través de htaccess
- 23. Redireccionando de HTTP a HTTPS con PHP
- 24. regla de reescritura de Apache con parámetros?
- 25. ¿Cómo se produce una StackOverflowException con unas pocas líneas de código?
- 26. http a https redirección
- 27. Apache 2 reescritura con cadena de consulta escapó dos veces
- 28. Error de Apache Benchmark HTTPS
- 29. Cómo reenviar la solicitud http a https en Amazon Route53?
- 30. Apache reescritura - obtener la URL original en PHP
Falta algo. No se olvide de agregar el signo de dólar '$' si desea que la coincidencia sea exacta o de lo contrario la regla coincidirá tan pronto como '/ page1 /' se encuentre en cualquier parte de la URL. eso podría no ser lo que quieres. La página que intentaba tener solo en http era '/'. no funcionó bien sin '$'. 'RewriteCond% {REQUEST_URI}^\/$' – lano1106
Parece que debería cambiar a 'RewriteRule (. *) Https: //% {HTTP_HOST} $ 1 [L, R = 301]', de lo contrario se redirigirá a https: // example.org// (barras diagonales dobles) – Sutra