Mes URL actuelles ressemblent à ceci [mysite]index.php/[rest of the slug]
.
Je veux enlever index.php
de ces URL.
mod_rewrite
est activé sur mon serveur Apache2. Dans config
, $config['index_page'] = '';
Le fichier racine .htaccess
de mon 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?
Essayez ce qui suit
Ouvrez config.php et remplacez les éléments suivants
$config['index_page'] = "index.php"
à
$config['index_page'] = ""
Dans certains cas, le paramètre par défaut pour uri_protocol
ne fonctionne pas correctement. Il suffit de remplacer
$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 extra? dans la dernière ligne du code ci-dessus. La ligne suivante sera remplacée par la dernière ligne dans les cas suivants:
// Replace last .htaccess line with this line
RewriteRule ^(.*)$ index.php?/$1 [L,QSA]
Step: -1 Ouvrez le dossier “application/config” et ouvrez le fichier “config.php“. trouvez 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'] = ""
Step: -2 Allez dans votre dossier CodeIgniter et créez .htaccess
Path:
Your_website_folder/
application/
assets/
system/
.htaccess <——— this file
index.php
Étape: -3 Écrire 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.
//find the below code
$config['uri_protocol'] = "AUTO"
//replace with the below code
$config['uri_protocol'] = "REQUEST_URI"
C’est tout sauf dans wamp server, cela ne fonctionne pas car rewrite_module est désactivé par défaut, nous devons donc l’activer. pour cela faire ce qui suit
Étape 1 :
Ajouter 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 codeigniter config
$config['base_url'] = '';
$config['index_page'] = '';
Étape 3 :
Autoriser le remplacement de htaccess dans Apache Configuration (Command)
Sudo nano /etc/Apache2/Apache2.conf
et éditez le fichier et passez à
AllowOverride All
pour le dossier www
Étape 4 :
Activation de la réécriture du mod Apache (Commande)
Sudo a2enmod rewrite
Étape 5:
Redémarrer Apache (Commande)
Sudo /etc/init.d/Apache2 restart
Étape 1 => Placez votre fichier .htaccess dans le dossier racine contenant les dossiers de l’application et du système.
Étape 2 => Si votre chemin Web utilise un sous-dossier tel que - 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 utilisant un 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]
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 l'URL dans cet ordre site.com/index.php/class/method/id
NB: supprimer index.php dans config.php devrait être config [index_page] = ""
NB: remarquez la différence à la dernière ligne au lieu de 0 $ utilisez 1 $
Il y a deux étapes:
1) Éditez le fichier 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]
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.
1.Créez un nouveau fichier .htaccess dans 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'] = ''
.
faire un fichier .htaccess
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]
changement
$config['index_page'] = '';
supprimer index.php
présent dans le fichier config.php
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 htaccess racine et assurez-vous que vous avez
$config['index_page'] = '';
dans votre fichier de configuration.
S'il vous plaît laissez-moi savoir si vous rencontrez un problème.
+ 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
tout d’abord, vous devez utiliser le moteur de réécriture du serveur Apache. 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.
Eh bien, toutes ces réponses sont bonnes, mais pour un débutant (ce qui est le cas pour 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 le fichier htaccess dans le dossier principal du projet.
Ceci est votre dossier codeigniter, où le fichier réside comme une application, un système, des ressources, des téléchargements, etc.
Your_project_folder/
application/
assets/
cgi-bin/
system/
.htaccess---->(Edit this file if not exist than create it)
index.php
Changer ce fichier comme écrit 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 le fichier 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";
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.
vous pouvez aller dans config\config.php file et supprimer la valeur index.php de cette variable
$config['index_page'] = 'index.php'; // delete index.php
créer un fichier .htaccess et y coller 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
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]
Seulement trois étapes sont nécessaires pour supprimer index.php de l'URL dans Codeigniter
1) Créez un fichier .htacess en parallèle du détenteur 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) Changez $ config ['index_page'] en blanc dans config.php dans le dossier de l’application comme ci-dessous:
$config['index_page'] = '';
3) Activez le “module rewrite” d’Apache.
Redémarrez votre Apache et c'est fait.
Détails: http://sforsuresh.in/removing-index-php-from-url-of-codeigniter-in-wamp/
Je pense que tout est bon mais que vous faites pour égarer votre fichier htaccess, allez 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]
Vous pouvez éliminer index.php de l’URL en créant un fichier .htaccess dans le répertoire de base de votre projet, ce fichier contenant son contenu.
RewriteEngine on
RewriteCond $ 1! ^ (Index.php | actifs | images | js | css | uploads | favicon.png)
RewriteCond% (REQUEST_FILENAME)! -F
RewriteCond% (REQUEST_FILENAME)! -D
RewriteRule ^ (. *) $ ./Index.php/$1 [L]
enregistrer ce fichier aussi votre fichier modifié dans config.php est correct
$config['index_page'] = '';
Je souhaite courir avec succès
Ajoutez ces lignes de codes sur votre fichier .htaccess:
RewriteEngine on
RewriteCond $1 !^(index\.php|images|robots\.txt)
RewriteRule ^(.*)$ /myproject/index.php/$1 [L]
Où 'mon projet est le nom de votre dossier de projet.
Vous pouvez en savoir plus sur CodeIgniter ou télécharger le fichier .htaccess à partir d’ici
vous pouvez aller au fichier application\config\config.php et supprimer index.php
$ config ['index_page'] = 'index.php'; // delete index.php
Changer en
$ config ['index_page'] = '';
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 ça va marcher.
Suivez ces étapes, votre problème sera résolu
1- Téléchargez le fichier .htaccess ici https://www.dropbox.com/s/tupcu1ctkb8pmmd/.htaccess?dl=0
2- Modifier 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- Remplacez uri_protocol de AUTO par PATH_INFO dans le fichier Config.php
Note: Tout d’abord, vous devez activer mod_rewrite à partir de httpd.conf d’apachi en supprimant les commentaires.
si toutes les solutions ci-dessus ne fonctionnent pas, deux fichiers index.html et index.php seront créés dans votre dossier de projet. Renommez index.html en index_1.html et parcourez votre projet.
Résolu en 2 étapes.
- Mise à jour 2 des paramètres dans le fichier de configuration application/config/config.php
$config['index_page'] = '';
$config['uri_protocol'] = 'REQUEST_URI';
- Mettre à 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>
Outre ces réponses, on peut simplement ajouter index.php ou le modifier (s’il existe déjà) - pour des raisons de sécurité, vous voulez tout de même désactiver index.php, en répertoriant les fichiers dans votre répertoire de site Web - puis modifiez le contenu en
<?php
header('location:your_required_starting.php');
?>
Notez la différence avec le "?" Ajouté caractère après ".php", en particulier avec CodeIgniter:
RewriteRule ^ (. *) $ Index.php/$ 1 [L]
vs.
RewriteRule ^ (. *) $ Index.php?/$ 1 [L]
Cela dépend de plusieurs autres choses. Si cela ne fonctionne pas, essayez l’autre option!
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>
Utilisez ce code. Changez la 2ème ligne car vous avez votre nom de dossier. Où le fichier index.php et l'application des dossiers, le dossier système se trouvent. La plupart des problèmes surviennent à cause de la deuxième ligne. nous ne configurons pas le nom du dossier où project est place. Important est 2ème ligne. C'est simple pour supprimer le fichier index.php. Réécrire Moteur sur RewriteBase/nom_du_projet_projet 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]
Allez dans le 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
Chose mineure: (facultatif)
Essayez de redémarrer votre Apache après avoir mis à jour le statut du moteur de réécriture dans vhosts en tant que
Rewrite ON
.
Une chose essentielle à 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 un jour, tout allait bien. Plus tard, par méthode d'essai et d'erreur, trouvé cette chose. Après avoir supprimé ceci, mon travail était terminé . L'URL ne recherche pas index.php :)