【问题标题】:CakePHP Redirect to External URLCakePHP 重定向到外部 URL
【发布时间】:2012-01-10 01:20:54
【问题描述】:

在 CakePHP 中,我想创建一个从我的站点指向另一个站点的自定义 URL。

示例:example.com/google 将重定向到 http://www.google.com

我是一个自学成才的 CakePHP 新手,只是不知道步骤。从我的家庭作业来看,我认为我可以在 config/routes.php 中创建一个到控制器/动作的路由,但我没有正确的术语来在控制器中创建动作。

【问题讨论】:

    标签: cakephp


    【解决方案1】:

    你不想“重定向”,你想创建一个超链接。

    使用 Cake 的内置 Html 助手。

    在您的控制器中...

    var $helpers = array( 'Html' );
    

    在你看来……

    echo $this->Html->link( 'Google link!', 'http://www.google.com/' );
    

    “重定向”通常用于指在服务器端重定向脚本。例如,在用户填写联系表后,您可能希望通过电子邮件将详细信息发送给自己,然后将用户重定向到“成功!”带有以下控制器代码的页面

    $this->redirect( '/contact/success' );
    

    【讨论】:

    • 我遇到了这个问题,但在阅读了这篇文章后解决了。我的问题是在第二个参数中我做了 array('google.com') 我应该只放置 'google.com' 。谢谢你的帮助!!
    【解决方案2】:

    如果您想直接将表单控制器重定向到外部网址,我们可以直接使用

    $this->redirect('http://www.google.com');
    

    来自我们的控制器。它会将您重定向到上述地址。这工作得很好。

    【讨论】:

      【解决方案3】:

      使用 CakePHP HTML 助手是你最好的选择。

      echo $this->Html->link('Link Text Here', 'http://www.anywebsiteyouwant.com);
      

      如果足够简单,您可以直接使用 HTML。

      【讨论】:

        【解决方案4】:

        你需要的是这样的:

        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

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 2017-12-11
          • 2012-08-02
          • 1970-01-01
          • 1970-01-01
          • 2019-04-03
          • 2019-10-23
          • 2015-02-14
          相关资源
          最近更新 更多