【问题标题】:PhalconPHP - redirection to home page always adds /index in the URIPhalconPHP - 重定向到主页总是在 URI 中添加 /index
【发布时间】:2015-01-04 17:12:18
【问题描述】:

我正在使用 PhalconPHP 开发我的第一个应用程序,因此我在工作时深入研究了文档,但这似乎没有被涵盖。

假设我的应用在 www.myapp.tld 上运行。在某些情况下,我需要将用户重定向回主页,为此我使用以下代码:

if ($haveToRedirect) {
    $this->response->redirect();
    $this->view->disable();
    return;
}

如果重定向到 www.myapp.tld,用户会被重定向到 www.myapp.tld/index。我尝试了不同的重定向调用,但都给出了相同的结果:

    $this->response->redirect('');
    $this->response->redirect('/');
    $this->response->redirect('/', TRUE);

在应用程序的引导程序中,我将 BaseUri 设置为“/”:

$di->set('url', function() {
    $url = new Phalcon\Mvc\Url();
    $url->setBaseUri('/');
    return $url;
});

有没有办法避免“索引”被添加,只是让它重定向到“www.myapp.tld”?

【问题讨论】:

    标签: redirect phalcon phalcon-routing


    【解决方案1】:

    如果未指定文件,默认情况下会将您定向到该目录中的索引页。您需要指定文件位置。也尝试 URI,而不是 URL

    【讨论】:

    • 我知道我正在重定向到索引页面,因为我没有指定任何内容。索引页位于这两个 URL 上:www.myapp.tld/indexwww.myapp.tld/ 我只想使用后一个。
    • 您可以控制是否显示尾随索引。您需要创建一个 .htaccess 文件。这里有一些关于这个主题的有用文档。Remove index.
    • 这实际上是从 URL 中删除 index.php 文件。我正在使用 Nginx,并且我的配置已经根据 PhalconPHP 规范将 URI 重写为 index.php 参数。 location @rewrite { rewrite ^/(.*)$ /index.php?_url=/$1; } 我现在遇到的问题是,索引控制器的名称在 url 中被调用,而它不是必需的。
    • 这应该很容易解决。 Phalcon 吹嘘他们漂亮的网址click here
    【解决方案2】:

    重定向到“/index”的原因实际上是在我几周前创建的 Permission 类中。它有:

    $this->response->redirect('index');

    对于访客无法访问的每个控制器。自从我添加了新的控制器后,我不断地被重定向到索引,并注意到当我删除我放入控制器中的条件重定向时重定向来自其他地方。

    不管怎样,就是这样。吸取的教训 - 下次在寻求帮助之前 grep 搜索“索引”。 :)

    【讨论】:

      猜你喜欢
      • 2020-06-14
      • 1970-01-01
      • 2021-11-13
      • 2016-10-02
      • 2021-05-02
      • 2014-07-10
      • 2018-02-11
      • 1970-01-01
      相关资源
      最近更新 更多