Cakephp安全组件与RewriteRule的Forcessl冲突

时间:2014-02-04 06:02:09

标签: php .htaccess cakephp

我正在使用安全组件forcessl强制整个网站使用https。

对于https://www.domain.com/pages/detail/terms,在.htaccess文件中,我正在重写规则如下

RewriteRule ^(terms)$ pages/detail/$1/ [L]

所以它应该重定向到https://www.domain.com/terms。

使用https://domain.com/terms访问条款页面时,它会重定向到https://www.domain.com/terms

使用http://domain.com/terms访问术语页面时,它会重定向到https://www.domain.com/pages/detail/terms。

这是因为控制器中的forcessl:

$this->redirect('https://' . $_SERVER['SERVER_NAME'] . $this->here); 
$this->here

指向原始页面(页面/详细信息/术语)。如何解决此问题。

1 个答案:

答案 0 :(得分:0)

您是否尝试过使用Cake PHP的路由功能?在config/routes.php中添加以下内容:

Router::connect(
    '/terms',
    array(
        'controller' => 'pages',
        'action' => 'detail',
        'terms'
    )
);