【问题标题】:Admin url is not working properly in codeigniter管理员 url 在 codeigniter 中无法正常工作
【发布时间】:2013-06-28 07:52:28
【问题描述】:

我在 codeigniter 中创建了一个小应用程序。由于管理部分未打开,前端运行正常。

我正在尝试以yourdomain/admin/index.php/user/ 的身份打开(但它显示404 not found error)。

那么如何查看admin的目录部分呢?

这是我的管理员文件结构和文件内容

D:\wamp\www\CodeIgniter\application\views\admin\catalog\catalog_view.php

<?php if (!defined('BASEPATH')) exit(__('No direct script access allowed')); ?>
<?php $this->load->view('admin/inc/header'); ?>

<h1><?php echo __('Catalog Manager'); ?></h1>

<p>Coming Soon...</p>


<?php $this->load->view('admin/inc/footer'); ?>


D:\wamp\www\CodeIgniter\application\controllers\admin\catalog\catalog.php

<?php
/**
 * Admin User Controller
 */
class User extends MY_Controller
{
    public function __construct()
    {
        parent::MY_Controller();
    }

    function index()
    {
        $data = '';

        //---
        $html_string = $this->load->view('admin/catalog/catalog_view', $data, true); //Get view data in place of sending to browser.

        Library('process')->view($html_string);
    }
}

【问题讨论】:

  • 请提供config/routes.php

标签: codeigniter url http-status-code-404 admin


【解决方案1】:

你有一个好的 htaccess 设置吗? 没有 htaccess 你可以访问 admin->index();这与 index.php/admin/index/

您的管理控制器文件的顺序不正确: /application/controllers/admin/catalog/catalog.php

如果没有路由 (http://ellislab.com/codeigniter/user-guide/general/routing.html),您将无法完成这项工作,您需要将您的类名从用户更改为目录。

理想情况下,您将控制器移动到 /controllers/admin.php。 然后你可以做 index.php/admin 和索引功能将显示。不需要任何路由。

【讨论】:

    【解决方案2】:

    你不能这样访问它yourdomain/admin/index.php/user/你必须先尝试site.com/index.php/admin/...

    但您必须确保创建了一个名为 controller/admin.php 的控制器来加载您的 views/admin/ 页面

    因为如果你不想接触 CI 核心或扩展它,规则是 :

    http://www.site.com/index.php/controller/method/params
    

    所以在你的情况下我会这样做:

    class Admin exntends CI_Controller{
     function index(){
     //admin home page
    //www.site.com/index.php/admin
    }
    function users(){
    //admin users page
    //www.site.com/index.php/admin/users
    }
    
    //... and so on
    
    }
    

    不需要路由,如果你想从你的 url 中删除 index.php,只需将这个 htaccess 放在你的项目根目录中:

    RewriteEngine On
    RewriteBase /
    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteCond %{REQUEST_FILENAME} !-d
    RewriteRule ^(.*)$ /index.php/$1 [L]
    

    【讨论】:

    • 或者在控制器目录中创建admin文件夹。 application/controller/admin/... 在 CI 2.1.3 中工作
    • @HashemQolami 是的,如你所愿!
    【解决方案3】:

    请使用路由文件少量设置,轻松设置管理员网址。

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

    【讨论】:

      猜你喜欢
      • 2011-12-12
      • 2013-11-10
      • 1970-01-01
      • 2011-06-10
      • 2012-05-16
      • 1970-01-01
      • 1970-01-01
      • 2017-01-05
      • 1970-01-01
      相关资源
      最近更新 更多