CodeIgniter supprimant index.php de l'URL

160

Mes URL actuelles ressemblent à ceci [mysite]index.php/[rest of the slug].
Je souhaite index.phpsupprimer ces URL.

mod_rewriteest activé sur mon serveur apache2. Dans config,$config['index_page'] = '';

Mon .htaccessfichier racine codeignitor contient,

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

Mais cela ne fonctionne toujours pas. Où vais-je mal?

Nihar Sarangi
la source
2
duplication possible de Comment supprimer "index.php" dans le chemin de
codeigniter
Pourquoi cette question a-t-elle autant de réponses en double
Tilak Maddy

Réponses:

239

Essayez ce qui suit

Ouvrez config.php et effectuez les remplacements suivants

$config['index_page'] = "index.php"

à

$config['index_page'] = ""

Dans certains cas, le paramètre par défaut de uri_protocolne fonctionne pas correctement. Remplacez simplement

$config['uri_protocol'] ="AUTO"

par

$config['uri_protocol'] = "REQUEST_URI"

.htaccess

RewriteEngine on
RewriteCond $1 !^(index\.php|resources|robots\.txt)
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ index.php/$1 [L,QSA] 

Remarque: le code .htaccess varie en fonction du serveur d'hébergement. Dans certains serveurs d'hébergement (par exemple: Godaddy) besoin d'utiliser un supplément? dans la dernière ligne du code ci-dessus. La ligne suivante sera remplacée par la dernière ligne le cas échéant:

// Replace last .htaccess line with this line
RewriteRule ^(.*)$ index.php?/$1 [L,QSA] 
Rahul Tailwal
la source
4
J'ai essayé ce code RewriteRule ^(.*)$ index.php/$1 [L]mais je peux toujours afficher la page dans les deux sens domain.com/about-us, domain.com/index.php/about-us et domain.com/index.php?/about-us qui génère Erreur de référencement, à savoir balise de titre en double et description de méta en double
Musaddiq Khan
Merci pour la réponse, j'ai eu le même problème et l'ajout du premier RewriteCond le fait fonctionner. Pouvez-vous expliquer pourquoi le manuel (ici: codeigniter.com/userguide3/general/… ) ne le mentionne pas?
Claudio
Merci pour votre réponse, j'ai eu le même problème de tank-auth
striker_axel
$_POSTou isset($_POST)ne fonctionne pas après avoir ajouté cela.
DCK
1
et n'oubliez pas de changer la configuration d'Apache comme mentionné dans stackoverflow.com/a/14807463/1537413
Dika
135

Étape: -1 Ouvrez le dossier «application / config» et ouvrez le fichier «config.php». recherchez et remplacez le code ci-dessous dans le fichier config.php.

//find the below code   
$config['index_page'] = "index.php" 
//replace with the below code
$config['index_page'] = ""

Étape: -2 Allez dans votre dossier CodeIgniter et créez .htaccess

Path:
Your_website_folder/
application/
assets/
system/
.htaccess <——— this file
index.php

Étape: -3 Écrivez le code ci-dessous dans le fichier .htaccess

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

Étape: -4 Dans certains cas, le paramètre par défaut pour uri_protocol ne fonctionne pas correctement. Pour résoudre ce problème, ouvrez simplement le fichier «application / config / config.php», puis recherchez et remplacez le code ci-dessous

//Not needed for CodeIgniter 3 its already there.
//find the below code
$config['uri_protocol'] = "AUTO"
//replace with the below code
$config['uri_protocol'] = "REQUEST_URI" 

C'est tout sauf dans le serveur wamp, cela ne fonctionne pas car rewrite_module par défaut est désactivé, nous devons donc l'activer. pour cela, procédez comme suit

  1. Cliquez avec le bouton gauche sur l'icône WAMP
  2. Apache
  3. Modules Apache
  4. Clic gauche rewrite_module

Documentation originale

Exemple de lien

MaxEcho
la source
6
J'ai dû mettre le .htaccess dans le dossier racine au lieu du dossier "application" pour que cela fonctionne
Mawardy
Je n'ai pas de dossier CodeIgniter. Qu'est-ce que tu racontes?
Nicolas S.Xu
1
il supprime index.php mais je dois aussi supprimer la barre oblique inverse supplémentaire '/'
Pradeep Kumar Prabaharan
après avoir changé dans config.php et créé un fichier .htaccess. Je reçois une erreur d'analyse d'erreur: erreur de syntaxe, '$ config' (T_VARIABLE) inattendu dans l'application \ config \ config.php à la ligne 55
Fawwad
Merci pour la réponse. Pour moi, je devais mettre à jour mon fichier htaccess comme indiqué, puis m'assurer qu'il s'agissait d'un frère du dossier système, pas à l'intérieur.
Kiky Rodriguez
44

Étape 1 :

Ajoutez ceci dans le fichier htaccess

<IfModule mod_rewrite.c>
  RewriteEngine On
  #RewriteBase /

  RewriteCond %{REQUEST_FILENAME} !-f
  RewriteRule ^ index.php [QSA,L]
</IfModule>

Étape 2 :

Supprimer index.php dans la configuration de codeigniter

$config['base_url'] = ''; 
$config['index_page'] = '';

Étape 3 :

Autoriser le remplacement de htaccess dans la configuration Apache (commande)

sudo nano /etc/apache2/apache2.conf

et éditez le fichier et changez en

AllowOverride All

pour le dossier www

Étape 4 :

Réécriture de mod apache activée (commande)

sudo a2enmod rewrite

Étape 5:

Redémarrez Apache (commande)

sudo /etc/init.d/apache2 restart
Dino
la source
3
"AllowOverride All" dans apache2.conf a résolu le problème pour moi, car .htaccess filles ne sont pas utilisés par défaut.
Laurent Jégou
1
J'aimerais pouvoir vous donner un bonus pour cela! J'ai sauvé ma journée. Passé 2 heures après ceci: |
Kiran P.
1
Il semble que pour les distributions Linux récentes, la première chose à faire est de modifier la règle AllowOveride
Nasz Njoka Sr.
Finalement, il a fonctionné. Merci. La règle AllowOveride m'aide à résoudre ce problème. J'utilise ubuntu 16.04
Apit John Ismail
Excellente solution, merci :)
Razib Al Mamun
16
RewriteEngine on
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule .* index.php/$0 [PT,L]

utilisation

RewriteEngine on
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule .* index.php/$1 [PT,L]

si vous avez une URL dans cette commande site.com/index.php/class/method/id

NB: supprimer index.php dans config.php doit être config [index_page] = ""

NB: notez la différence à la dernière ligne au lieu de 0 $ utilisez 1 $

utilisateur3464848
la source
cela fonctionne pour moi. Les réponses ci-dessus ne le font pas. Je n'ai pas testé les réponses ci-dessous.
Jam Ville
Cela a fonctionné pour moi, mais j'ai dû changer le protocole uri de 'AUTO; à 'REQUEST_URI' comme ceci: $ config ['uri_protocol'] = 'REQUEST_URI';
isabelle martz
RewriteRule .* index.php/$1 [PT,L]- cela ne passera pas le chemin de l'URL sauf si vous changez le RewriteRule modèle de .*à (.*). Cependant, si vous utilisez, $config['uri_protocol'] = 'REQUEST_URI';cela n'a pas d'importance de toute façon.
MrWhite le
16

Étape 1 => Placez votre fichier .htaccess dans le dossier racine où se trouvent les dossiers d'application et système.

Étape 2 => Si votre chemin Web utilise un sous-dossier comme - votredomaine.com/project/ - utilisez le code suivant dans le fichier htaccess

RewriteEngine on
RewriteBase    /project/
RewriteCond $1 !^(index\.php|images|robots\.txt)
RewriteRule ^(.*)$ /project/index.php/$1 [L]

Si votre chemin Web en utilisant le dossier racine comme - votredomaine.com - utilisez le code suivant dans le fichier htaccess

RewriteEngine on
RewriteBase    /
RewriteCond $1 !^(index\.php|images|robots\.txt)
RewriteRule ^(.*)$ /index.php/$1 [L]
vinod
la source
C'est de loin la réponse la meilleure et la plus complète. chose de sous-dossier est ce qui le rend meilleur que les autres réponses.
Bhavik Shah
Cela DEVRAIT être la réponse. La réponse votée avec la partie sur: RewriteCond% {REQUEST_FILENAME}! -F RewriteCond% {REQUEST_FILENAME}! -D Cela n'a pas fonctionné pour moi.
GunWanderer
11

sur votre htaccess utilisez ceci,

RewriteEngine On
RewriteBase /root_folder_name/
RewriteCond %{REQUEST_URI} ^system.*
RewriteCond $1 !^(index\.php|images|js|uploads|css|robots\.txt)
RewriteRule ^(.*)$ /index.php/$1 [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ index.php/$1 [L]

J'espère que cela t'aides.

yuvaraj bathrabagu
la source
root_folder_name -> avez-vous changé cela avec votre nom de dossier racine ??
yuvaraj bathrabagu
Oui, je l'ai fait. J'y ai mis ma racine de codeigniter. Est-ce exact?
Nihar Sarangi
Buddy J'utilise ce code .htaccess dans deux de mes projets CI !! et les deux fonctionnent bien !!
yuvaraj bathrabagu
11

Il y a deux étapes:

1) Editez config.php

$config['index_page'] = 'index.php';

À

$config['index_page'] = '’;

2) Créer / Modifier un fichier .htaccess

RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ index.php/$1 [L]
shafi
la source
6
  1. créer un .htaccessfichier et mettre ce code

     RewriteEngine on
     RewriteCond $1 !^(index\.php|resources|robots\.txt)
     RewriteCond %{REQUEST_FILENAME} !-f
     RewriteCond %{REQUEST_FILENAME} !-d
     RewriteRule ^(.*)$ index.php/$1 [L,QSA] 
  2. changement

    $config['index_page'] = ''; 

supprimer le index.phpprésent dans le config.phpfichier

  1. réécrire depuis votre serveur.
Siddharth Shukla
la source
6

1.Créez un nouveau fichier .htaccess sur le répertoire racine.

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

2. Accédez à votre fichier config.php et passez de $config['index_page'] = 'index.php' à$config['index_page'] = ''

Manish Sharma
la source
6

Résolu le problème en 2 étapes.

  1. Mettre à jour 2 paramètres dans le fichier de configuration application / config / config.php
$config['index_page'] = '';
$config['uri_protocol'] = 'REQUEST_URI';
  1. Mettez à jour le fichier .htaccess dans le dossier racine
<IfModule mod_rewrite.c>
    RewriteEngine On
      RewriteBase /
      RewriteCond %{REQUEST_FILENAME} !-f
      RewriteCond %{REQUEST_FILENAME} !-d
      RewriteRule ^(.*)$ index.php?/$1 [L]
</IfModule>
Khachornchit Songsaen
la source
5

essayez celui-ci.Il peut vous aider car cela fonctionne pour moi.

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

mettez le code dans votre fichier racine htaccess et assurez-vous que vous avez

$config['index_page'] = '';

dans votre fichier de configuration.

Veuillez me faire savoir si vous rencontrez un problème.

ABorty
la source
C'est exactement ce que je faisais.
Nihar Sarangi
4
+ Copy .htaccess from Application to Root folder
+ edit .htaccess and put

<IfModule mod_rewrite.c>
    RewriteEngine On
    RewriteBase /ci_test/

    #Removes access to the system folder by users.
    #Additionally this will allow you to create a System.php controller,
    #previously this would not have been possible.
    #'system' can be replaced if you have renamed your system folder.
    RewriteCond %{REQUEST_URI} ^system.*
    RewriteRule ^(.*)$ /index.php?/$1 [L]

    #When your application folder isn't in the system folder
    #This snippet prevents user access to the application folder
    #Submitted by: Fabdrol
    #Rename 'application' to your applications folder name.
    RewriteCond %{REQUEST_URI} ^application.*
    RewriteRule ^(.*)$ /index.php?/$1 [L]

    #Checks to see if the user is attempting to access a valid file,
    #such as an image or css document, if this isn't true it sends the
    #request to index.php
    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteCond %{REQUEST_FILENAME} !-d
    RewriteRule ^(.*)$ index.php?/$1 [L]
</IfModule>

<IfModule !mod_rewrite.c>
    # If we don't have mod_rewrite installed, all 404's
    # can be sent to index.php, and everything works as normal.
    # Submitted by: ElliotHaughin

    ErrorDocument 404 /index.php
</IfModule>

Note: make sure your web server is enable for  "rewrite_module"

+ Remove index.php from $config['index_page'] = 'index.php';
- edit config.php in application/config
- search for index.php
change it from  $config['index_page'] = 'index.php'; to  $config['index_page'] = '';

Veuillez regarder ces vidéos pour référence https://www.youtube.com/watch?v=HFG2nMDn35Q

KH SolveCode
la source
4

Eh bien, toutes ces réponses sont bonnes, mais pour un débutant (ce qui est la première fois), elles sont déroutantes. Il existe d'autres fichiers htaccess qui résident dans le contrôleur, mais nous devons éditer ou ajouter l'htaccess dans le dossier principal du projet.

Il s'agit de votre dossier codeigniter, où le fichier réside comme l'application, le système, les actifs, les téléchargements, etc.

Your_project_folder/
application/
assets/
cgi-bin/
system/
.htaccess---->(Edit this file if not exist than create it)
index.php

Modifiez ce fichier comme indiqué ci-dessous:

<IfModule mod_rewrite.c>
  RewriteEngine On
  # !IMPORTANT! Set your RewriteBase here and don't forget trailing and leading
  #  slashes.
  # If your page resides at http://www.example.com/mypage/test1
  # then use RewriteBase /mypage/test1/
  # Otherwise /
  RewriteBase /
  RewriteCond %{REQUEST_FILENAME} !-f
  RewriteCond %{REQUEST_FILENAME} !-d
  RewriteRule ^(.*)$ index.php?/$1 [L]
</IfModule>

<IfModule !mod_rewrite.c>
  # If we don't have mod_rewrite installed, all 404's
  # can be sent to index.php, and everything works as normal.
  # Submitted by: Anand Pandey
  ErrorDocument 404 /index.php
</IfModule>

et oui bien sûr vous devez changer deux lignes de code dans l'application / config / config.php

//find the below code   
$config['index_page'] = "index.php";
$config['uri_protocol'] ="AUTO" 
//replace with the below code
$config['index_page'] = "";
$config['uri_protocol'] = "REQUEST_URI";
Anand Pandey
la source
Pour une raison quelconque, toutes ces réponses ne fonctionnent pas pour moi. Je peux accéder aux pages lorsque j'ajoute /index.php/ dans l'url.
Bilal Ahmad
3

Développement et production

    # Development
    RewriteEngine On
    RewriteBase /your_local_folder/
    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteCond %{REQUEST_FILENAME} !-d
    RewriteCond $1 !^(index\.php|images|scripts|styles|vendor|robots\.txt)
    RewriteRule ^(.*)$ index.php/$1 [L]

    #Production PHP5 CGI mode
    RewriteEngine On
    RewriteBase /
    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteCond %{REQUEST_FILENAME} !-d
    RewriteCond $1 !^(index\.php|images|scripts|styles|vendor|robots\.txt)
    RewriteRule ^(.*)$ index.php?/$1 [L]
cgwCode
la source
3

tout d'abord, vous devez sur le moteur de réécriture du serveur apache sur ce lien vous aidera pour cela

http://www.anmsaiful.net/blog/php/enable-apache-rewrite-module.html

RewriteEngine On
RewriteBase /your_folder_name/

RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d

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

ce sera votre fichier .htaccess. maintenant essayez-le. Ce paramètre fonctionne pour moi.

vaibhav kulkarni
la source
2

vous pouvez aller dans le fichier config \ config.php et supprimer la valeur index.php de cette variable

$config['index_page'] = 'index.php'; // delete index.php

créez un fichier .htaccess et collez-y ce code.

<IfModule mod_rewrite.c>

 Options +FollowSymLinks

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

</IfModule>

bonne chance

Abbas Hussen
la source
2
  Removing index.php from url of codeigniter   

Three steps are require to remove index.php from url in Codeigniter.

1)Create .htacess file in parallel to application holder and just copy past the following code:

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

2) Change $config['index_page'] to blank in config.php in application folder as below:

$config['index_page'] = '';

3) Enable rewrite_module of apache.
Pritam Chaudhari
la source
1

Seules trois étapes sont nécessaires pour supprimer index.php de l'url dans Codeigniter

1) Créez un fichier .htacess en parallèle avec le titulaire de l'application et copiez simplement le code suivant:

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

2) Modifiez $ config ['index_page'] en blanc dans config.php dans le dossier de l'application comme ci-dessous:

$config['index_page'] = '';

3) Activez «rewrite_module» d'Apache.

Redémarrez votre apache et c'est fait.

Détails: http://sforsuresh.in/removing-index-php-from-url-of-codeigniter-in-wamp/

Suresh Kamrushi
la source
1

Je pense que tous vos paramètres sont bons mais vous faites pour égarer votre fichier htaccess et ajoutez votre htaccess à votre fichier projet

dossier_projet-> htaccess

et ajoutez ce code à votre htaccess

RewriteEngine on
RewriteCond $1 !^(index\.php|resources|robots\.txt)
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ index.php/$1 [L,QSA]
Yaseen Ahmad
la source
1

vous pouvez aller dans le fichier application \ config \ config.php et supprimer index.php

 $ config ['index_page'] = 'index.php'; // supprimer index.php

Changer pour

 $ config ['index_page'] = '';

Rafiqul Islam
la source
1

essayez ce RewriteEngine On

        # Removes index.php from ExpressionEngine URLs
        RewriteCond $1 !\.(gif|jpe?g|png)$ [NC]
        RewriteCond %{REQUEST_FILENAME} !-f
        RewriteCond %{REQUEST_FILENAME} !-d
        RewriteRule ^(.*)$ /index.php/$1 [L]
</IfModule>
Kashif
la source
1

Cela fonctionne pour moi. Testé dans codeigniter 3.1.11, PHP 5.6.40 J'utilise un hôte virtuel dans ma configuration apache2 dans le serveur de test.

<VirtualHost *:80>
     ServerAdmin [email protected]
     DocumentRoot (__DIR__)
     ServerName mydomain
     ##ErrorLog "logs/dummy-host2.example.com-error.log"
     ##CustomLog "logs/dummy-host2.example.com-access.log" common
     <Directory "(__DIR__)">
        Require all granted
        AllowOverride All
   </Directory>
</VirtualHost>

Et /.htaccess content

    <IfModule mod_rewrite.c>
       RewriteEngine On
       RewriteCond %{REQUEST_FILENAME} !-f
       RewriteCond %{REQUEST_FILENAME} !-d
       RewriteRule ^(.*)$ index.php/$1 [L] 
    </IfModule>
jose insfran
la source
0

Suivez ces étapes, votre problème sera résolu

1- Téléchargez le fichier .htaccess à partir d'ici https://www.dropbox.com/s/tupcu1ctkb8pmmd/.htaccess?dl=0

2- Modifiez le nom du répertoire CodeIgnitor sur la ligne 5. comme mon nom de répertoire est abc (ajoutez votre nom)

3- Enregistrez le fichier .htaccess dans le répertoire principal (abc) de votre dossier codeignitor

4- Changer uri_protocol d'AUTO en PATH_INFO dans le fichier Config.php

Remarque: Tout d'abord, vous devez activer mod_rewrite depuis httpd.conf d'apachi en supprimant les commentaires

Salman Khan
la source
0

Utilisez ce code. Changez la deuxième ligne car vous avez le nom de votre dossier. Où le fichier index.php et l'application de dossiers, le dossier système se trouvent. La plupart des problèmes surviennent en raison de la deuxième ligne. nous ne configurons pas le nom du dossier où se trouve le projet. L'important est la deuxième ligne. C'est simple de supprimer l'index.php. RewriteEngine sur RewriteBase / project_folder_name RewriteCond% {REQUEST_FILENAME}! -F RewriteCond% {REQUEST_FILENAME}! -D RewriteRule. * Index.php / $ 0 [PT, L]

#RewriteEngine on
#RewriteCond $1 !^(index\.php|images|robots\.txt)
#RewriteRule ^(.*)$ index.php/$1 [L]    

Accédez au fichier controller / config.php.

config ['index_url'] = '';

Référence pour plus d'étude.

https://ellislab.com/expressionengine/user-guide/urls/remove_index.php.html

https://ellislab.com/blog/entry/fully-removing-index.php-from-urls

Hafiz Shehbaz Ali
la source
0

En plus de ces réponses, on peut simplement ajouter index.php ou le modifier (s'il est déjà là) - pour plus de sécurité, vous voulez quand même désactiver index.php, en listant les fichiers dans le répertoire de votre site Web - puis changer le contenu en

<?php
   header('location:your_required_starting.php'); 
?>
Bennyhardjono
la source
0

Chose mineure: (facultatif)

Essayez de redémarrer votre Apache après avoir mis à jour l'état du moteur de réécriture dans les hôtes virtuels en tant que Rewrite ON.

Une chose critique à noter:

Dans le fichier Apache vhosts, vérifiez si vous avez cette ligne de script. AllowOverride None Si oui, veuillez supprimer / commenter cette ligne.

Mon script de fichier vhosts: (Avant)

<VirtualHost *:80>
    DocumentRoot "/path/to/workspace"
    ServerName ciproject
    ErrorLog "/path/to/workspace/error.log"
    CustomLog "/path/to/workspace/access.log" common
    Directory   "/path/to/workspace">
        Options Indexes FollowSymLinks
        AllowOverride None
        Order allow,deny
        Allow from all
    </Directory> 
</VirtualHost>

Mon script de fichier vhosts: (après)

<VirtualHost *:80>
    DocumentRoot "/path/to/workspace"
    ServerName ciproject
    ErrorLog "/path/to/workspace/error.log"
    CustomLog "/path/to/workspace/access.log" common
    Directory   "/path/to/workspace">
        Options Indexes FollowSymLinks
        #AllowOverride None
        Order allow,deny
        Allow from all
    </Directory> 
</VirtualHost>

J'ai fait face au même problème, j'ai lutté pendant environ 1 jour, tout allait bien. Plus tard, par la méthode des essais et des erreurs, j'ai trouvé cette chose. Après avoir supprimé cela, mon travail était accompli. L'URL ne recherche plus index.php :)

Lalith Kumar
la source
0

si toutes les solutions ci-dessus ne fonctionnent pas, alors dans le dossier de votre projet, il y aura deux fichiers index.html et index.php, renommez index.html en index_1.html et parcourez votre projet.

Mohsin Shoukat
la source
0

Notez la différence avec l'ajout "?" caractère après ".php", en particulier lorsqu'il s'agit de CodeIgniter:

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

contre.

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

Cela dépend de plusieurs autres choses ... si cela ne fonctionne pas, essayez l'autre option!

eyal_katz
la source
0

Vous pouvez supprimer index.php de l'url en plaçant du code dans .htaccess

Chemin du fichier: root> .htacess

RewriteEngine On
RewriteBase /
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d


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

J'espère que cela fonctionnera.

Rokan Nashp
la source
0

Dans CodeIgniter 3.16 en utilisant htaccess pour

supprimer le fichier index.php

& aussi

rediriger HTTP vers HTTPS

Suivez les codes:

  • aller au application\config\config.phpdossier

Faire des changements

$config['index_page'] = 'index.php';

À

$config['index_page'] = '';
  • Maintenant, ouvrez le fichier .htaccess et mettez à jour les codes ci-dessous
RewriteEngine on
RewriteBase /

## Redirect SSL
RewriteCond %{SERVER_PORT} 80 
RewriteRule ^(.*)$ https://%{HTTP_HOST}/$1 [R,L]

## Remove fron url index.php
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond $1 !^/(index\.php|assets/|humans\.txt)
RewriteRule ^(.*)$ index.php/$1 [L] 
Chandan Sharma
la source