1

у меня есть проблемы с CodeIgniter3: 404 Страница не найдена404 Страница не найдена. запрошенная вами страница не найдена. Codeigniter 3.0.6

Файл: приложение/контроллеры/Welcome.php

<?php 
defined('BASEPATH') OR exit('No direct script access allowed'); 
class Welcome extends CI_Controller { 
    public function __construct() 
    { 
     parent::__construct(); 
    } 
    public function index() 
    { 
     $this->load->view('Welcome_Page'); 
    } 
    public function tutorial() 
    { 
     $this->load->view('Tutorial_Page'); 
    } 
    public function manual() 
    { 
     $this->load->view('Manual_Page'); 
    } 
    public function forum() 
    { 
     $this->load->view('Forum_Page'); 
    } 
    public function register() 
    { 
     $this->load->view('Register_Page'); 
    } 
    public function login() 
    { 
     $this->load->view('Login_Page'); 
    } 
} 

Файл: приложение/Config/автозагрузка/PHP

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

Файл: приложение/Config/routes.php

$route['default_controller'] = 'welcome'; 
$route['translate_uri_dashes'] = FALSE; 

Файл: приложение/Config/config.php

$config['base_url'] = 'http://subdomain.domain.tld'; 
$config['index_page'] = ''; 

Файл: .htaccess

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

Страница нагрузки Welcome_Page, но не другие страницы.

404 Page Not Found 

The page you requested was not found. 

В просмотре папки существуют страницы: Forum_Page.php, Login_Page.php, Manual_Page.php, Register_Page.php, Tutorial_Page.php и Welcome_Page.php

Большое спасибо за понимание!

+0

показать URL-адрес, пытающийся получить доступ. И должно быть обратное слэш в 'base_url' –

+0

Я пробовал: $ config ['base_url'] = 'http: //subdomain.domain.tld/'; ... не работает. – Aurel

+0

Попробуйте сменить 'RewriteRule^(. *) $ Index.php?/$ 1 [L]'. – Tpojka

ответ

0

А, я вижу сейчас. Ваша проблема в маршрутизации. Вы предназначены, чтобы достигнуть страниц, как

http://sub.domain.tld/welcome/tutorial 
http://sub.domain.tld/welcome/manual 
... 

но вы создали вид HTML, чтобы получить

http://sub.domain.tld/tutorial 
http://sub.domain.tld/manual 
... 

В APPPATH.'config/routes.php' файл под зарезервированных маршрутов вы должны перенаправить ваши звонки в пути:

$config[(:any)] = 'welcome/$1' 

Здесь нужно обратить внимание на две вещи:

  1. Заполнитель (:any) будет иметь место для $1,
  2. Вашего маршрута, который содержит (:any) параметра должны быть в конце файла, так как

    Routes will run in the order they are defined. Higher routes will always take precedence over lower ones.

Более того here. Проверьте всю страницу и другие страницы в документах.

+0

Спасибо! Работает! : D – Aurel

+0

#SOreadytohelp Не стесняйтесь [принимать] (http://meta.stackexchange.com/questions/5234/how-does-accepting-an-answer-work) (и upvote), поскольку он исправил вашу проблему, чтобы помочь другим проще найти решение. – Tpojka

5

Попробуйте это. Замените код .htaccess следующим кодом: YOURPROJECTNAME - ваша базовая папка. например если вы находитесь на локальном сервере, и ваш проект называется myproblem, а затем заменить «YOURPROJECTNAME» с «» myproblem

RewriteEngine On 
RewriteBase/
RewriteCond %{REQUEST_FILENAME} !-f 
RewriteCond %{REQUEST_FILENAME} !-d 
RewriteRule .* YOURPROJECTNAME/index.php/$0 [PT,L] 

убедитесь, что .htaccess в корне вашего приложения также.

+0

Я отображает ошибку: 500 Внутренняя ошибка сервера Произошла внутренняя ошибка сервера. – Aurel

+0

Является ли ваше приложение запущено на локальном сервере? – Dunco

+0

Нет ... выполняется на общем сервере – Aurel

Смежные вопросы