Thanks for your detailed help but still not what I am referring to. I have a
force / unforce ssl for urls but that usually is forced by general surfing
on the site if user is on a page requiring SSL then the function
redirects..pretty simple.

 

What I am saying is in the controller, in an action itself you have
redirect() for whatever reason so send user to another url, now if this url
your sending them to requires SSL for example your redirecting them once
with the controller redirect...and beforeRender hits them with a second
redirect to force the ssl. It would be easier to simply say in the
controller redirect that im sending you to a https url if needed rather than
double redirects.

 

Look at firebug to inspect the requests and the way you mention you get 2
requests fired off resulting in 302 redirects. 

 

Controller sends to http://site.com/page (302 redirect #1)

Gets to http://site.com/page hit with the second redirect 302 since it
should be ssl for this example

So finally after the second redirect you end up at  <https://site.com/page>
https://site.com/page.

 

All I was asking is there was a way to simply call the redirect() in the
controller to force the ssl right there and then.

 

 

 

 

 

From: [email protected] [mailto:[email protected]] On Behalf
Of Matt Murphy
Sent: Saturday, May 14, 2011 12:21 AM
To: [email protected]
Subject: Re: Force redirect to be SSL

 

I've done this before with a component which i'd include in relevant
controllers and call in needed methods.  

------------
<?php
class SslComponent extends Object {

    var $controller;

    function startup(&$controller) {
        $this->controller =& $controller;
    }

    function force() {
        if(!$this->__isSSL()) {
            $this->controller->redirect('https://'.$this->__url());
        }
    }

    function unforce($path = '') {
        if($this->__isSSL()) {
            $this->controller->redirect('http://'.$this->__url($path));
        }
    }

    function __url( $path = '') {
        $path = $path ? $path : env('REQUEST_URI');
        return env('SERVER_NAME').$path;
    }

    function __isSSL() {
        if (env('SERVER_PORT')==443) {
            return true;
        } else {
            return false;
        }
    }
}
--------------------------
In my controllers, I htink I'd call $this->Ssl->force(); on the methods I
wanted to be in SSL and ->unforce() in the rest (which is grossly inferior
to using the .htaccess method!).  Warning:  It was not possible, using this,
to go from ssl to non-ssl or visa versa with POST values intact (something
this shares with the .htaccess rewrite method.).  Sorry if the above is off
, but the idea should be clear enough.  

Er, this is also old as hell.  Written for 1.1, I think.


MM
On Fri, May 13, 2011 at 6:43 PM, Krissy Masters <[email protected]>
wrote:

Not using any htaccess files.
I only have 2 redirects that I need to force to SSL I was just curious if
there was a way.

Maybe this is something future versions of cake might incorporate?

Allow an additional param for SSL => true to force the redirect to be ssl
rather than a double redirect.



--
Our newest site for the community: CakePHP Video Tutorials
http://tv.cakephp.org
Check out the new CakePHP Questions site http://ask.cakephp.org and help
others with their CakePHP related questions.


To unsubscribe from this group, send email to
[email protected]
<mailto:cake-php%[email protected]>  For more options, visit
this group at http://groups.google.com/group/cake-php

 

-- 
Our newest site for the community: CakePHP Video Tutorials
http://tv.cakephp.org 
Check out the new CakePHP Questions site http://ask.cakephp.org and help
others with their CakePHP related questions.
 
 
To unsubscribe from this group, send email to
[email protected] For more options, visit this group at
http://groups.google.com/group/cake-php

-- 
Our newest site for the community: CakePHP Video Tutorials 
http://tv.cakephp.org 
Check out the new CakePHP Questions site http://ask.cakephp.org and help others 
with their CakePHP related questions.


To unsubscribe from this group, send email to
[email protected] For more options, visit this group at 
http://groups.google.com/group/cake-php

Reply via email to