Codeigniter - aucun fichier d'entrée spécifié

86

Je suis un débutant en Codeigniter et j'ai vu un tutoriel CI et j'essayais juste de faire une chose simple. J'ai téléchargé le CI et ajouté ce fichier au répertoire du contrôleur, mais cela ne fonctionnera pas.

<?php

class site extends CI_Controller
{
    public function index()
    {
        echo "Hello World";
    }

    function dosomething()
    {
        echo "Do Something";
    }   
}    
?>

Quand j'essaye d'y accéder en utilisant http: //..../index.php/site, j'obtiens la sortie ... "aucun fichier d'entrée spécifié" .... au fait, j'ai nommé le fichier site.php

koool
la source
Essayez de consulter ce lien et voyez s'il résout le problème.
Vap0r
Non n'aide pas merci pour l'effort
koool

Réponses:

291

Ajoutez simplement le ? signe après index.php dans le fichier .htaccess:

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

et ça marcherait!

Ali Mohamed
la source
Pour moi, cela sert une redirection 301 et je me retrouve avec /? / Dans l'URL.
Ade
@Ali Mohamed, lequel des fichiers htaccess ajoutez-vous cette ligne? J'ai essayé mais je n'ai aucun effet
Bahdeng
1
@Bahdeng vous devez placer cet extrait de code dans le fichier .htaccess du répertoire de votre projet.
Ali Mohamed
changez la ligne ci-dessus en fonction de votre répertoire d'application comme si votre application n'est pas sur le répertoire racine, écrivez le code suivant à la place de la ligne ci-dessusRewriteRule ^(.*)$ /sub-directory/index.php?/$1 [L,QSA]
skovy
1
@NSGodMode qui serait dans le répertoire racine de codeigniter en plus de index.php
Ali Mohamed
58

Godaddy hébergeant ça semble fixe .htaccess, moi-même ça marche

RewriteRule ^(.*)$ index.php/$1 [L]

à

RewriteRule ^(.*)$ index.php?/$1 [QSA,L]
Sekar Suresh S
la source
changez la ligne ci-dessus en fonction de votre répertoire d'application comme si votre application n'est pas sur le répertoire racine, écrivez le code suivant à la place de la ligne ci-dessusRewriteRule ^(.*)$ /sub-directory/index.php?/$1 [L,QSA]
skovy
Sa page 404 n'a pas été trouvée avec CI 3
Nipun Tyagi
38

J'ai trouvé la réponse à cette question ici ..... Le problème était le serveur d'hébergement ... Je remercie tous ceux qui ont essayé .... J'espère que cela aidera les autres

Conseils d'installation de Godaddy

koool
la source
changez la ligne ci-dessus en fonction de votre répertoire d'application comme si votre application n'est pas sur le répertoire racine, écrivez le code suivant à la place de la ligne ci-dessusRewriteRule ^(.*)$ /sub-directory/index.php?/$1 [L,QSA]
skovy
17

RewriteEngine, DirectoryIndex dans le fichier .htaccess des applications CodeIgniter

Je viens de changer le contenu du fichier .htaccess et comme indiqué dans la réponse des liens suivants . Et j'ai essayé d'actualiser la page (ce qui n'a pas fonctionné et n'a pas pu trouver la demande à mon contrôleur), cela a fonctionné.

Puis, juste à cause de mon doute, j'ai annulé les modifications que j'ai apportées à mon .htaccess dans mon dossier public_html pour revenir au contenu d'origine .htaccess . C'est donc maintenant comme suit (ce qui était à l'origine):

DirectoryIndex index.php
RewriteEngine on
RewriteCond $1 !^(index\.php|images|css|js|robots\.txt|favicon\.ico)
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ ./index.php?/$1 [L,QSA]

Et maintenant aussi ça marche.

Astuce: On dirait qu'avant, les règles de réécriture n'ont pas été clairement configurées dans le contexte du serveur.

Ma structure de fichiers est la suivante:

/
|- gheapp
|    |- application
|    L- system
|
|- public_html
|    |- .htaccess
|    L- index.php

Et dans le index.phpj'ai mis en place les chemins suivants vers le système et l'application:

$system_path = '../gheapp/system';
$application_folder = '../gheapp/application';

Remarque: ce faisant, le code source de notre application devient d'abord caché au public.

S'il vous plaît, si vous trouvez quelque chose qui ne va pas avec ma réponse, commentez et corrigez-moi à nouveau!
J'espère que les débutants trouveront cette réponse utile.

Merci!

Randika Vishman
la source
1

Mon site est hébergé sur MochaHost, j'ai eu du mal à configurer le fichier .htaccess afin de pouvoir supprimer l'index.php de mes URL. Cependant, après quelques recherches sur Google, j'ai combiné la réponse sur ce fil et d'autres réponses. Mon fichier .htaccess de travail final a le contenu suivant:

<IfModule mod_rewrite.c>
    # Turn on URL rewriting
    RewriteEngine On

    # If your website begins from a folder e.g localhost/my_project then 
    # you have to change it to: RewriteBase /my_project/
    # If your site begins from the root e.g. example.local/ then
    # let it as it is
    RewriteBase /

    # Protect application and system files from being viewed when the index.php is missing
    RewriteCond $1 ^(application|system|private|logs)

    # Rewrite to index.php/access_denied/URL
    RewriteRule ^(.*)$ index.php/access_denied/$1 [PT,L]

    # Allow these directories and files to be displayed directly:
    RewriteCond $1 ^(index\.php|robots\.txt|favicon\.ico|public|app_upload|assets|css|js|images)

    # No rewriting
    RewriteRule ^(.*)$ - [PT,L]

    # Rewrite to index.php/URL
    RewriteRule ^(.*)$ index.php?/$1 [PT,L]
</IfModule>
MC d'hiver
la source