【问题标题】:Disable a link possible in Codeigniter?在 Codeigniter 中禁用链接?
【发布时间】:2015-03-11 10:42:45
【问题描述】:

我想禁用链接和路由。可能吗?即

 $route['test/admin'] = 'admin'; 

myproject.com/test/admin 现在转到 myproject.com/admin,没关系。但 myproject.com/admin 链接仍然有效。

我需要禁用链接,以便没有人可以通过此链接访问 myproject.com/admin

【问题讨论】:

  • 你试过@ris说的$route['admin'] = '/';吗?
  • 是的,它不起作用,因为 Admin 控制器中有很多方法,它会将所有 admin/方法重定向到默认控制器
  • 所以当用户访问myproject.com/admin 时,您不希望它正常工作吗?用户访问该 URL 时应该看到什么?
  • @CodeGodie,我想停止通过此链接访问 myproject.com/admin 用户在转到此链接时会看到错误页面或其他内容
  • 但是......你是说你仍然有方法。如果您想将此路由到错误页面,您将如何尝试访问这些方法?

标签: php codeigniter routing


【解决方案1】:

您可以将您的管理员路由到其他地方,例如

$route['admin'] = '/';

或任何其他页面

【讨论】:

  • “Admin”控制器中还有很多其他方法。所以这将对其他方法停止工作
  • 我认为如果您想访问其他方法,则 url 看起来像 admin/somemethod 。所以它不会影响那些 url 。只有 index 方法会禁用 .
【解决方案2】:

您可以检查手册并重定向用户或在Admin 类/文件上显示错误:

<?php if ( ! defined('BASEPATH')) exit('No direct script access allowed');

class Admin extends CI_Controller 
{
    function __construct()
    {
        parent::__construct();

        if($this->uri->segment(1) == "admin")
        {
            show_404();
        }
    }
}

?>

【讨论】:

  • 嗨,@ Bora “Admin”控制器中还有许多其他方法。所以这将对其他方法停止工作
  • @RejoanulAlam 我不是巫师!我只是展示替代方法。这不需要对答案投反对票。这只是关于你的低质量问题。我已经完成了!
  • 嗨,@Bora 我不反对你。我只是将答案删除为“已解决”。不知道它是否算作downvote。对不起
  • @RejoanulAlam 你说other methods?是ajax请求吗?
  • 不,这些是正常的方法。可能我无法明确我的要求。 为了安全起见,我需要停止管理员链接并将链接更改为未知链接
【解决方案3】:

在您的.htaccess 文件中进行重定向:

Redirect /admin http://www.yourproject.com/test/admin

【讨论】:

  • 这不会解决问题。我想隐藏/禁用管理员链接
  • 您的问题不清楚。当有人在您的意见中键入 http://www.yourproject.com/admin 时,预期的行为是什么?应该是什么?
  • 是的,我的问题不清楚。 为了安全起见,我需要停止管理员链接并将链接更改为未知链接,例如将 http://www.yourproject.com/admin 更改为 http://www.yourproject.com/unknown/admin
  • 现在我们有了未知的 uri 段,以便更容易猜测您的请求目标是什么?好的。没有进一步的解释,您的要求或至少编程实用主义没有多大意义。您对最初的问题有相当多的正确答案。
猜你喜欢
  • 2015-06-05
  • 1970-01-01
  • 2012-01-02
  • 1970-01-01
  • 2014-08-22
  • 2017-10-18
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多