¿Cómo fuerzo HTTPS para ciertas partes de un sitio, p. una página de inicio de sesión o página de registro, y usar HTTP para el resto del sitio?CakePHP - Selective SSL
Respuesta
Hice exactamente lo mismo con CodeIgniter. No estoy totalmente familiarizado con CakePHP, pero estoy seguro de que el proceso es similar.
- Configuré apache para señalar el tráfico SSL y no SSL al mismo directorio.
- Entonces creó una matriz en la configuración que enumeran los cuales los controladores necesarios para tener SSL (registro, login, etc.)
- creó entonces una función en un ayudante autocargado que comprueba para ver si el controlador de corriente estaba en esa matriz y luego restablecería el
base_url
conhttps://
en lugar dehttp://
. Si el controlador no estaba en la matriz, forzaríabase_url
ahttp://
.
Funcionó impecablemente para mí. Avíseme si los ejemplos de código de mi proyecto CodeIgniter serían útiles.
Es posible cargar el componente RequestHandler y utilizar la función isSsl() para determinar si proviene de un servidor HTTP o HTTPS, si! IsSsl luego redirigirlo a una página https :) demás hacer lo otro lo que quieres
información sobre el libro de la función isSsl here
Una mejor solución podría estar haciendo esto con mod_rewrite con .htaccess con certeza la URL de salida y el código de todo junto.
Puede configurar sus reglas de reescritura solo para ciertas Url.
Aquí es una pista sobre cómo hacerlo para un sitio completo:
http://www.besthostratings.com/articles/force-ssl-htaccess.html
Mi favorito convertir a https método de forzar es poner esto como la primera cosa en su script php. Funciona en Joomla, y bien puede funcionar en CakePHP.
if($_SERVER['SERVER_PORT'] == 80) {
header('Location:https://'.$_SERVER['HTTP_HOST'].dirname($_SERVER['PHP_SELF']).'/'.basename($_SERVER['PHP_SELF']));
die();
}
Este fragmento forzará https en cualquier página que esté viendo. Si desea aislar páginas de certian, simplemente ponga algunas condiciones basadas en la información en la variable "$ _SERVER ['PHP_SELF']".
De lo contrario, modificar el archivo .htaccess, asumiendo que su anfitrión le permite tener acceso a esto:
RewriteEngine On
RewriteCond %{SERVER_PORT} 80
RewriteCond %{REQUEST_URI} somefolder
RewriteRule ^(.*)$ https://www.domain.com/somefolder/$1 [R,L]
- 1. Django Selective Dumpdata
- 2. Activando selectivamente SSL para ciertas acciones en CakePHP
- 3. Access cakephp session (auth) from outside cakephp
- 4. barato SSL vs SSL Caro
- 5. apache virtualhost SSL + no SSL
- 6. Cakephp JsonView
- 7. Acelerando CakePHP
- 8. cakePHP security
- 9. Cakephp Security
- 10. Cakephp textarea
- 11. Mismo servidor, SSL y no SSL
- 12. Certificado SSL
- 13. CakePHP y GROUP BY
- 14. CakePHP: JSON vs AJAX
- 15. CakePHP para grandes proyectos
- 16. Controlador CakePHP alias
- 17. CakePHP 2.1 JsonView
- 18. CakePHP encuentran con MAX
- 19. Pruebas unitarias en CakePHP?
- 20. Cakephp, ¿para qué sirve?
- 21. CakePHP y subconsulta
- 22. Localizando timeAgoInWords en CakePHP
- 23. CakePHP OAuth con Google
- 24. Desventajas del framework cakePHP
- 25. cakephp contraseña de validación
- 26. .htaccess para cakephp
- 27. CakePHP fav icon
- 28. CakePHP, CGI y mod_rewrite
- 29. Backbone.js y CakePHP
- 30. cakephp O condición
posible duplicado de [permitiendo selectivamente SSL para ciertas acciones en CakePHP] (http://stackoverflow.com/questions/751338/selectively-enabling-ssl-for-certain-actions-in-cakephp) – sarnold