子文件夹中的Codeigniter管理应用程序显示404错误页面

时间:2019-07-16 16:47:06

标签: php .htaccess codeigniter redirect

我有以下问题。

我已经在 sub.domain.com 中创建了主要的codeigniter网站,并且还在 sub.domain.com/admin中创建了另一个codeigniter应用程序(管理员)。 ..

*请注意,如果有人提到我,我不会使用HMVC模型...

问题是,当我尝试访问/ admin网址时,出现错误404重定向问题。

这是我的主要文件,还有一些我要提及的其他内容:

.htaccess 文件:

Options -Indexes
Options +FollowSymLinks

# Indexes default
DirectoryIndex index.php

<IfModule mod_rewrite.c>
    RewriteEngine On
    #RewriteBase /admin
    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteCond %{REQUEST_FILENAME} !-d
    RewriteRule (.*) index.php/$1
</IfModule>

我的 routes.php 文件:

/**
* Users login - logout
*/
$route['login'] = 'users/users/login';
$route['logout'] = 'users/users/logout'; //Controller located in subfolder

$route['users'] = 'users/users';
$route['users/(:any)'] = 'users/users/$1';
/**
* Redirect any URI after default url
*/
$route['pages/(:any)'] = 'pages/$1';

/**
* Other routes
*/
$route['(:any)'] = 'pages';
$route['default_controller'] = 'pages';
$route['404_override'] = '';
$route['translate_uri_dashes'] = FALSE;

我的 header.php 文件中也有此文件,如果未登录等,我会在该文件中重定向用户的登录名等。

if (!$this->ion_auth->logged_in() && $this->uri->segment(1) !== 'login') {              
    redirect('login');
} elseif( $this->ion_auth->logged_in() && !$this->ion_auth->is_admin($this->ion_auth->get_user_id()) ){
    redirect('logout');
}

应用程序/控制器 的结构类似于:

Controllers
-Customers
--Customers.php
-Users
--Users.php
-Pages.php
etc..etc..

我已经尝试了所有方法(.htaccess,RewriteBase / admin等。),但仍然无济于事。

有什么想法吗?谢谢...

1 个答案:

答案 0 :(得分:0)

尝试一下:

在主应用程序中

.htaccess:

AddDefaultCharset UTF-8
Options -Indexes

<IfModule mod_rewrite.c>
    RewriteEngine On
    RewriteBase /

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

    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteCond %{REQUEST_FILENAME} !-d
    RewriteRule (.*) index.php/$1
</IfModule>
/ p中的

.htaccess:

AddDefaultCharset UTF-8
Options -Indexes

<IfModule mod_rewrite.c>
    RewriteEngine On
    RewriteBase /

    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteCond %{REQUEST_FILENAME} !-d
    RewriteRule (.*) /admin/index.php/$1
</IfModule>