¿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 security
- 7. Acelerando CakePHP
- 8. Cakephp JsonView
- 9. Cakephp Security
- 10. Cakephp textarea
- 11. Mismo servidor, SSL y no SSL
- 12. Certificado SSL
- 13. Pruebas unitarias en CakePHP?
- 14. cakephp find list
- 15. .htaccess para cakephp
- 16. CakePHP y GROUP BY
- 17. CakePHP enlace HTML
- 18. Cakephp, ordenando tablas asociadas
- 19. Cakephp clase no encontró
- 20. CakePHP para grandes proyectos
- 21. cakephp contraseña de validación
- 22. CakePHP encuentran con MAX
- 23. CakePHP y subconsulta
- 24. CakePHP, CGI y mod_rewrite
- 25. Desventajas del framework cakePHP
- 26. Cakephp Search for MySQL
- 27. CakePHP fav icon
- 28. Cakephp, ¿para qué sirve?
- 29. Crear API usando CakePHP
- 30. cakePHP isAuthorized no funciona
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