Je sais que cette question est déjà posée, j'ai essayé tous ceux mais toujours incapable de supprimer index.php d'url. Voici mes détails
Ubuntu 12.10
PHP : 5.4.6
Mod_rewrite in on
CI verson: 2.1
.htacess ressemblent à:
RewriteEngine On
RewriteBase /projectname
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ index.php/$1 [L]
Je regarde aussi le lien ci-dessous mais pas de chance. Impossible de supprimer index.php du site url basé sur CI
Comment supprimer "index.php" dans le chemin de codeigniter
Mon "/ etc/Apache2/sites-available/default" ressemble à ceci:
<VirtualHost *:80>
ServerAdmin webmaster@localhost
DocumentRoot /var/www
<Directory />
Options FollowSymLinks
AllowOverride None
</Directory>
<Directory /var/www/>
Options Indexes FollowSymLinks MultiViews
AllowOverride All
Order allow,deny
allow from all
</Directory>
ScriptAlias /cgi-bin/ /usr/lib/cgi-bin/
<Directory "/usr/lib/cgi-bin">
AllowOverride None
Options +ExecCGI -MultiViews +SymLinksIfOwnerMatch
Order allow,deny
Allow from all
</Directory>
ErrorLog ${Apache_LOG_DIR}/error.log
# Possible values include: debug, info, notice, warn, error, crit,
# alert, emerg.
LogLevel warn
CustomLog ${Apache_LOG_DIR}/access.log combined
</VirtualHost>
Toute aide appréciée !!
Dans application/config/config.php
change:
$config['index_page'] = 'index.php';
à:
$config['index_page'] = '';
c'est une bonne idée de recharger Apache chaque fois que vous modifiez un fichier de configuration Apache.
Sudo /etc/init.d/Apache2 reload
ou:
Sudo service Apache2 reload
ou:
Sudo /etc/init.d/httpd reload
(ou quelle que soit la commande équivalente pour votre plate-forme)
pour ce que cela vaut, voici mon .htaccess
RewriteEngine on
RewriteBase /
RewriteCond $1 !^(index\.php|static|robots\.txt|favicon\.ico|uploads|googlexxxxxxxx\.html|mobile.html)
RewriteRule ^(.*)$ index.php/$1 [L]
É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 la configuration d'Apache (commande)
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
mon .htaccess
RewriteEngine on
RewriteCond $1 !^(index.php)
RewriteRule ^(.*)$ index.php/$1 [L]