【发布时间】:2012-01-10 01:20:54
【问题描述】:
在 CakePHP 中,我想创建一个从我的站点指向另一个站点的自定义 URL。
示例:example.com/google 将重定向到 http://www.google.com
我是一个自学成才的 CakePHP 新手,只是不知道步骤。从我的家庭作业来看,我认为我可以在 config/routes.php 中创建一个到控制器/动作的路由,但我没有正确的术语来在控制器中创建动作。
【问题讨论】:
标签: cakephp
在 CakePHP 中,我想创建一个从我的站点指向另一个站点的自定义 URL。
示例:example.com/google 将重定向到 http://www.google.com
我是一个自学成才的 CakePHP 新手,只是不知道步骤。从我的家庭作业来看,我认为我可以在 config/routes.php 中创建一个到控制器/动作的路由,但我没有正确的术语来在控制器中创建动作。
【问题讨论】:
标签: cakephp
你不想“重定向”,你想创建一个超链接。
使用 Cake 的内置 Html 助手。
在您的控制器中...
var $helpers = array( 'Html' );
在你看来……
echo $this->Html->link( 'Google link!', 'http://www.google.com/' );
“重定向”通常用于指在服务器端重定向脚本。例如,在用户填写联系表后,您可能希望通过电子邮件将详细信息发送给自己,然后将用户重定向到“成功!”带有以下控制器代码的页面
$this->redirect( '/contact/success' );
【讨论】:
如果您想直接将表单控制器重定向到外部网址,我们可以直接使用
$this->redirect('http://www.google.com');
来自我们的控制器。它会将您重定向到上述地址。这工作得很好。
【讨论】:
使用 CakePHP HTML 助手是你最好的选择。
echo $this->Html->link('Link Text Here', 'http://www.anywebsiteyouwant.com);
如果足够简单,您可以直接使用 HTML。
【讨论】:
你需要的是这样的:
Router::redirect('/posts/*', 'http://google.com', array('status' => 302));
这会将 /posts/* 重定向到 http://google.com,HTTP 状态为 302。 见http://book.cakephp.org/2.0/en/development/routing.html
【讨论】: