2 votes

Configuration initiale de CodeIgniter 404

Je viens de commencer à apprendre CodeIgniter et j'essaie de mettre en place mon projet dans cette structure :

Spécifications
Apache/2.4.27 (Win64) PHP/5.6.31.
Serveur : Serveur WAMP 3 Configuration de l'hôte local
CodeIgniter 3.1.2

Annuaire
www/CI/firstci/******

L'utilisation de cette structure de répertoire entraînera donc une erreur 404 lorsque je naviguerai vers www/CI/firstci/

404 Page non trouvée La page demandée n'a pas été trouvée.

Si je place mon CodeIgniter plus haut dans la racine comme ceci

Annuaire
www/firstci/******

Cela fonctionne lorsque je navigue vers www/firstci/ et il me dirigera vers une page de bienvenue.

Ma question est donc la suivante : comment puis-je résoudre ce problème de routage/chemin ? Si possible, expliquez pourquoi CodeIgniter se comporte de la même façon ?

2voto

ankit suthar Points 2314

Voici quelques étapes de base pour lancer l'installation de CI.

  1. Comme indiqué dans le commentaire, vérifiez votre URL de base dans config.php
  2. Suivez ce lien Instructions d'installation
  3. Voici le lien d'aide au routage de la documentation
  4. Vous pouvez retirer le index.php Voici le fichier lien de documentation

1voto

Photonic Points 704

Ok, j'ai découvert qu'après avoir changé :

routes.php

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

POUR

$route['default_controller'] = 'pages/view';
$route['(:any)'] = 'pages/view/$1';
$route['404_override'] = '';
$route['translate_uri_dashes'] = FALSE;

Ajouter un fichier contrôleur appelé Pages.php

class Pages extends CI_Controller {
    public function view($page = 'home') {
        if (!file_exists(APPPATH.'views/pages/'.$page.'.php')){
            show_404();
        }

        $data['title'] = ucfirst($page);

        $this->load->view('templates/header');
        $this->load->view('pages/'.$page, $data);
        $this->load->view('templates/footer');
    }
}

J'ai également ajouté le fichier .htaccess

RewriteEngine on
RewriteCond $1 !^(index\.php|assets|images|js|css|uploads|favicon.png)
RewriteCond %(REQUEST_FILENAME) !-f
RewriteCond %(REQUEST_FILENAME) !-d
RewriteRule ^(.*)$ ./index.php/$1 [L]

J'ai ajouté les fichiers pertinents au dossier de visualisation en l'organisant selon cette structure :

templates/header
pages/'.$page, $data
templates/footer

Il fonctionne maintenant et peut me diriger vers n'importe quelle page php.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X