2013-02-08 40 views
0

我继承的项目将所有链接硬编码为“https”,我的开发环境无法识别“https://somesite.internal-domain.com”。这意味着有些事情偶尔会被打破。使用CakePHP 1.3,您如何处理开发中的实时和普通HTTP URL上的HTTPS URL?

CakePHP是否提供了一些生成格式化链接的方法,以考虑SSL证书是否可用?

+0

你需要所有链接的“完整”网址吗? (包括域名),因为通常你只能使用没有域名(/ mycontroller/myaction)的相对链接,这样你就可以保留在当前域中,不管是'https'还是不是。 – thaJeztah 2013-02-08 16:31:32

+0

一句话;在投放前,请务必通过SSL测试*网站。有时浏览器在通过SSL提供服务时行为会有所不同。如果你不在SSL环境下测试,你可能会在部署网站时感到不愉快的惊喜(yup,在那里)。 – thaJeztah 2013-02-08 16:40:26

+0

@thaJeztah有一个“子网站”指向子域名网站,如http://subsite.mainsite.com – mikemcg 2013-02-28 15:33:37

回答

0

是的,它默认。 如果使用相对或阵列链接像

$this->Html->link('Some link', array('controller' => 'foo', 'action' => 'bar', ...)); 

你会看到,蛋糕使用HTTP/HTTPS dependend对您目前使用的是什么。 这将是要走的路。

如果你想防止一种方法只是301重定向到另一个。 所以,如果你想切换到https,重定向到从http到http(同一个链接,但预先添加了不同的协议)。

+0

虽然这是*首选的方式,我问OP是否需要'完整'网址或只有相对URL,这也可以使用选项''full_base'=> true'。 – thaJeztah 2013-02-08 16:34:27

+0

你仍然可以做到这一点。你的方式链接() - 和“真”作为第二参数为所有'$ this-> Html-> url()'当然:) – mark 2013-02-08 17:00:10