0

Je sais qu'il y a beaucoup de problèmes comme celui-ci mais j'ai tout appliqué et je ne trouve pas la bonne façon de le faire.CodeIgniter 2.1.4 - Routage ne fonctionne pas dans le serveur

Le .htaccess est:

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

<IfModule !mod_rewrite.c> 
ErrorDocument 404 /NewWebsite/error.php 
</IfModule> 

Dans config/config.php:

$config['base_url'] = 'https://mydomain.com/NewWebsite/'; 
$config['index_page'] = ''; 
$config['uri_protocol'] = 'AUTO'; // I change it with REQUEST_URI and PATH_INFO but it don't work 

Dans le serveur, mod_rewrite est activé. Dans localhost, tout est ok mais quand je l'ai téléchargé sur le serveur, seul l'index fonctionne (la première page que vous voyez) mais quand je veux "bouger" sur le web, j'ai l'erreur 404, la page n'est pas trouvée .

Je vais montrer un contrôleur et comment je l'appelle pour passer à d'autres vues.

class Products_controller extends CI_Controller { 
    public function index() 
    { 
     $this->load->helper('url'); 
     $this->load->helper('html'); 
     $this->load->view('products.php'); 
    } 
} 

Et à partir de l'index, je l'appelle:

echo base_url('Products_controller/index'); 

OU

echo base_url('Products'); // I have in config/routes.php ---> $route['Products'] = "Products_controller/index"; 

Tout le monde peut me aider? Qu'est-ce que je rate ?

Merci.

+0

Quel est votre hébergeur? .htaccess varient en fonction du fournisseur d'hébergement. –

+0

Mon hébergeur est hostinet. Je lui demande "mod_rewrite" et ils ont dit que c'était activé, donc je peux l'utiliser. – danigonlinea

+0

Essayez avec ma réponse et laissez-moi savoir ce qui s'est passé. –

Répondre

0

Et finalement, j'ai eu une solution à propos de ce sujet. Il ne s'agissait pas d'un problème de .htaccess, c'était vraiment une erreur et une simple erreur.

En CodeIgniter, le nom des contrôleurs et le nom du fichier doivent avoir exactement le même nom. J'ai défini mes contrôleurs avec la première lettre en majuscule et non dans le fichier . Et maintenant tout va bien!

Merci les gars.

0

Bien que .htaccess dépende parfois du serveur d'hébergement mais vous pouvez essayer avec ceci et nous le faire savoir. Remplacez votre code .htaccess avec le code suivant:

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

Ceci est.

+0

Je l'ai fait et maintenant ... quand j'essaie de passer à la vue en appelant le contrôleur que j'ai décrit ci-dessus .. Je suis redirigé vers "mydomain.com". Je veux dire, j'essaie d'obtenir un sous-répertoire avec Codeigniter installé dans "mydomain.com/NewWebsite" – danigonlinea

+0

Je peux essayer de l'installer dans "mydomain.com" au lieu de "mydomain".com/NewWebsite "mais ... ce n'est pas la même chose? Il doit s'agir d'un répertoire racine? – danigonlinea

+0

Veuillez décrire votre scénario brièvement afin que je puisse vous répondre parfaitement –

0
<IfModule mod_rewrite.c> 
RewriteEngine On 
RewriteBase/
RewriteRule ^index\.php$ - [L] 
RewriteCond %{REQUEST_FILENAME} !-f 
RewriteCond %{REQUEST_FILENAME} !-d 
RewriteRule . /NewWebsite/index.php [L] 
</IfModule> 

ci-dessus devrait fonctionner - assurez-vous que votre .htaccess est à l'intérieur du sous-répertoire que vous souhaitez exécuter à partir.

Assurez-vous également que vous ne disposez pas d'une règle .htaccess en conflit dans le répertoire de base.

+0

Ne marche pas Quand j'essaie de quitter index.php, obtenir 404. Je ne comprends pas, ça doit marcher – danigonlinea

+0

J'ai essayé un nouveau projet sans .htacess donc vous pouvez voir index.php dans l'URL.Seulement deux contrôleurs, deux pages et un but ... obtenir d'un et ça échoue aussi, qu'est-ce que ça peut être, c'est le serveur? Ou quoi? Ça va me rendre folle, je vois que l'URL est comme ça: www.d omain.com/NewWebsite/ControllerName/FunctionName mais toujours erreur 404, page non trouvée. – danigonlinea

Questions connexes