我想知道是否有任何方法可以通过 URL 限制对 Controller 功能的访问。但我想通过网站上的链接给他们打电话。例如,如果我的网站中有一个指向 Controller 功能的链接:
<a href='test/function'>Call me</a>
但是当我将上述 URL 放入浏览器地址栏中时,我不希望调用 Controller 函数。谁能帮忙解决这个问题吗?
最佳答案
这是不可能的。 Apache 以及 CodeIgniter 允许外部世界访问您的 PHP 脚本,无论是通过手动输入的浏览器 URL 还是通过访问的超链接。这两种方案都以完全相同的方式连接到您的 Web 应用程序,但它们只是到达目的地的方式不同。
您可以使用以下方法仅允许访问您的 CodeIgniter 脚本(即阻止公共(public)用户访问 Controller ):
if ( ! defined('BASEPATH')) exit('No direct script access allowed');
正如马库斯所指出的,你可以使用类似的东西:
if (!$_SERVER['HTTP_REFERER']) $this->redirect('/home');
但它通常非常不一致。
关于php - Codeigniter - 限制从 URL 调用直接访问 Controller 功能,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14414768/