Codeigniter может отображать только контроллер по умолчанию - PullRequest
0 голосов
/ 21 мая 2018

Я работаю над codeigniter 3.1.8.Он отлично работает на моем локальном хосте.Однако когда я отправляю его на FTP-сервер, я могу получить доступ только к странице контроллера по умолчанию.Когда я пытался получить доступ к другому представлению, у которого есть другой контроллер, он выдает ошибку '404 Not Found'

config:

$config['base_url'] = 'https://*****.net/my_project/';
$config['index_page'] = '';
$config['uri_protocol'] = 'REQUEST_URI';
$config['enable_hooks'] = FALSE;
$config['encryption_key'] = 'xRUqKhsoZ5qV6y3kqARFJFdPqJvp7X2z';
$config['sess_driver'] = 'files';
$config['sess_cookie_name'] = 'ci_session';
$config['sess_expiration'] = 7200;
$config['sess_save_path'] = sys_get_temp_dir();
$config['sess_match_ip'] = FALSE;
$config['sess_time_to_update'] = 300;
$config['sess_regenerate_destroy'] = FALSE;

route:

$route['default_controller'] = 'main';
$route['404_override'] = '';
$route['translate_uri_dashes'] = FALSE;

Iперепробовал несколько .htaccess:

<IfModule mod_rewrite.c>
      RewriteEngine On
      RewriteCond %{REQUEST_FILENAME} !-f
      RewriteCond %{REQUEST_FILENAME} !-d
      RewriteRule ^(.*)$ /materials-library/index.php/$1 [L]
</IfModule>
<IfModule !mod_rewrite.c>
      ErrorDocument 404 /index.php
</IfModule>

и

<IfModule mod_rewrite.c>

RewriteEngine On

# Set the rewritebase to your CI installation folder
RewriteBase /sandbox/ci/


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

</IfModule> 

Любая помощь будет очень признательна.Спасибо!

Ответы [ 3 ]

0 голосов
/ 21 мая 2018

это нормальная проблема, и для исправления необходимо определить файл .htaccess в вашей папке.как ниже оба файла в вашей папке.поместите этот файл в основную папку и назначьте имя .htaccess

RewriteEngine on
    RewriteCond $1 !^(index\.php|resources|robots\.txt)
    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteCond %{REQUEST_FILENAME} !-d
    RewriteRule ^(.*)$ index.php/$1 [L,QSA]

поместите этот файл в папку своего приложения и назначьте имя .htaccess

<IfModule authz_core_module>
  Require all denied
</IfModule>
<IfModule !authz_core_module>
  Deny from all
</IfModule>
0 голосов
/ 21 мая 2018
1) first controller name and class name first character capital letter
   example :: CapturistaCtrl
2) go to config changes ::
   -> $config['index_page'] = 'index.php'; remove index.php
   -> $config['uri_protocol']   = 'REQUEST_URI'; remove (REQUEST_URI)
3) .htaccess
   <IfModule mod_rewrite.c>
       RewriteEngine On
       RewriteCond $1 !^(index\.php|resources|robots\.txt)
       RewriteCond %{REQUEST_FILENAME} !-f
       RewriteCond %{REQUEST_FILENAME} !-d
       RewriteRule ^(.*)$ index.php?/$1 [L,QSA]
   </IfModule>

set .htaccess file 

List item
0 голосов
/ 21 мая 2018

Попробуй, у меня все работает.Убедитесь, что файл должен называться «Yourcontroller.php» с большой буквы «Y».

.htaccess

RewriteEngine on
RewriteCond $1 !^(index\.php|resources|robots\.txt)
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ index.php/$1 [L,QSA]

Убедитесь, что вы загрузили библиотеку uri (application / config / autoload).php)

$autoload['helper'] = array('url', 'file');

Проверьте контроллер именовании здесь:.! https://www.codeigniter.com/userguide3/general/controllers.html. Надеюсь, что это поможет

1012 * Приветствие
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...