CodeIgniter routage ne fonctionne pas
J'ai des problèmes avec mon routage. Mon contrôleur par défaut (mysite.com) de travail, mais si je tente quoi que ce soit (par ex. mysite.com/dashboard), il va à un serveur de base de 404, pas un CodeIgniter. Il est très déroutant, car pour le moment je n'ai que 2 chemins dans mon routes.php fichier. Voici les non-sections commentées de mon routes.php fichier:
$route['404_override'] = '';
$route['default_controller'] = 'pages/view';
$route['(:any)'] = 'pages/view/$1';
Mon contrôleur est situé dans /application/controllers/pages.php.
Je ne pense pas que ses un .htaccess question (qu'il peut obtenir pour le contrôleur par défaut), mais c'est mon .htaccess:
RewriteEngine On
RewriteCond $1 !^(index\.php|styles|scripts|images|robots\.txt)
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ index.php?$1
#<IfModule mod_gzip.c>
# mod_gzip_on Yes
# mod_gzip_dechunk Yes
# mod_gzip_item_include file \.(html?|txt|css|js|php|pl)$
# mod_gzip_item_include handler ^cgi-script$
# mod_gzip_item_include mime ^text/.*
# mod_gzip_item_include mime ^application/x-javascript.*
# mod_gzip_item_exclude mime ^image/.*
# mod_gzip_item_exclude rspheader ^Content-Encoding:.*gzip.*
#</IfModule>
Modifier
Ici est le contrôleur pages:
<?php
class Pages extends CI_Controller {
public function __construct()
{
//Construct it's parent
parent::__construct();
//Check login
//$this->load->model('pages_model');
//$this->pages_model->getLoginStatus();
}
public function view($page = 'dashboard')
{
//If the file doesn't exist
if ( ! file_exists('/var/www/vhosts/mysite/httpdocs/library/application/views/pages/'.$page.'.php'))
{
//Whoops, we don't have a page for that!
show_404();
}
$data['title'] = ucfirst($page); //Capitalize the first letter
//Load all necessary views
$this->load->view('templates/head', $data);
$this->load->view('templates/header', $data);
$this->load->view('pages/'.$page, $data);
$this->load->view('templates/footer', $data);
}
}
?>
Question stupide mais, la méthode "afficher" n'existe pas pour le contrôleur pages?
Oui, c'est la seule méthode dans les pages de catégorie. Je vais ajouter la classe dans le code ci-dessus.
Est-ce parce que vous avez déclaré votre contrôleur par défaut en tant que contrôleur/méthode, et pas seulement le contrôleur? Vous devriez avoir une méthode index() dans les pages contrôleur qui va s'exécuter lorsque le contrôleur est appelé, sans aucun supplément de segments.
Ce code est pris directement à partir de codeigniter.com/user_guide/tutorial/static_pages.html et la variable dans la page/afficher les valeurs par défaut de "tableau de bord" si pas donné une valeur.
êtes-vous sûr que votre serveur a mod_rewrite activé?
Oui, c'est la seule méthode dans les pages de catégorie. Je vais ajouter la classe dans le code ci-dessus.
Est-ce parce que vous avez déclaré votre contrôleur par défaut en tant que contrôleur/méthode, et pas seulement le contrôleur? Vous devriez avoir une méthode index() dans les pages contrôleur qui va s'exécuter lorsque le contrôleur est appelé, sans aucun supplément de segments.
Ce code est pris directement à partir de codeigniter.com/user_guide/tutorial/static_pages.html et la variable dans la page/afficher les valeurs par défaut de "tableau de bord" si pas donné une valeur.
êtes-vous sûr que votre serveur a mod_rewrite activé?
OriginalL'auteur Phil Young | 2012-05-01
Vous devez vous connecter pour publier un commentaire.
eu le même problème tout à l'heure , il suffit de les déplacer .fichier htaccess à la racine de votre répertoire de travail
prendre juste du dossier de l'application
OriginalL'auteur Alireza Soori
C'est mon fichier htaccess que j'utilise pour TOUS les projets:
Alors assurez-vous que dans votre config.php fichier:
OriginalL'auteur Laurence
Récemment, j'ai mis à jour ma version de PHP sur le serveur de 7,0 à 7,2.
Cependant mon CodeIgniter Routage cessé de travailler par la suite. Toutes les demandes de retour de 300 d'erreur dans le navigateur de la console.
J'ai résolu mon problème en revenant à la version 7.0.
OriginalL'auteur Valentino Pereira