使用CakePHP1.3,如何处理实时HTTP URL和开发人员的普通HTTP URL?

使用CakePHP1.3,如何处理实时HTTP URL和开发人员的普通HTTP URL?,cakephp,ssl,cakephp-1.3,Cakephp,Ssl,Cakephp 1.3,我继承的项目将所有链接硬编码为“https”,而我的开发环境不识别“”。这意味着有些东西偶尔会坏掉 CakePHP是否提供了某种生成格式化链接的方法,以考虑SSL证书是否可用 是,默认情况下是这样的。 如果使用相对链接或数组链接,如 $this->Html->link('Some link', array('controller' => 'foo', 'action' => 'bar', ...)); 您将看到,cake使用的http/https取决于您当前使用的内容。

我继承的项目将所有链接硬编码为“https”,而我的开发环境不识别“”。这意味着有些东西偶尔会坏掉

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

是,默认情况下是这样的。 如果使用相对链接或数组链接,如

$this->Html->link('Some link', array('controller' => 'foo', 'action' => 'bar', ...));
您将看到,cake使用的http/https取决于您当前使用的内容。 那将是一条路要走

如果您想阻止一种方式,只需301重定向,然后再转到另一种方式。
因此,如果您想切换到https,请重定向到从http到http(相同的链接,但预先添加了不同的协议)。

所有链接都需要“完整”URL吗?(包括域名),因为通常你只会使用没有域名的相对链接(/mycontroller/myaction),这样你就可以留在当前域名上,不管是不是“https”;在上线之前,请确保通过SSL对网站进行测试。有时,通过SSL提供服务时,浏览器的行为会有所不同。如果你不在SSL环境下进行测试,你可能会在部署网站时感到不快和惊讶(是的,曾经在那里)。@thaJeztah有一个指向子域站点的“子站点”清单,比如虽然这是首选方式,但我问OP是否需要“完整”URL或仅需要相对URL,也可以使用选项
“full_base”=>true
。您仍然可以实现这一点。您的链接方式()-并将“true”作为所有
$this->Html->url()的第二个参数:)