Bonjour,
Je cherche depuis plusieurs jours la solution et malgré tout ce que je trouve sur Internet je n'y arrive pas…
Je me tourne alors vers la communauté !
Je suis en train de mettre mon site en ligne, j'ai développé ce site avec CodeIgniter 4.0.4.
J'essaye donc, comme beaucoup avant moi, de retirer le "index.php" de l'url.
Malgré tout ce que j'ai trouvé, je n'y arrive pas…
Voici mon .htaccess à la racine du répertoire www :
# Disable directory browsing
Options All -Indexes
# Rewrite HTTPS
RewriteEngine on
RewriteCond %{SERVER_PORT} 80
RewriteRule (.) https://%{HTTP_HOST}%{REQUEST_URI} [R=301,L]
RewriteEngine on
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.)$ index.php/$1 [L]
La première partir pour le HTTPS fonctionne, mais la deuxième, trouvée sur le site de CodeIgniter n'y fait rien, le "index.php" est toujours présent ![]()
Je ne suis pas très doué en .htaccess et je ne vois pas du tout ou est mon erreur.
Si quelqu'un pouvait me venir en aide ça serait très appréciable ![]()
Merci d'avance !
Bonne journée,
RewriteCond %{REQUEST_FILENAME} !-f
= prend tout ce qui n'est pas un fichier
RewriteCond %{REQUEST_FILENAME} !-d
= prend tout ce qui n'est pas un dossier
RewriteRule ^(.)$ index.php/$1 [L]
^(.)$ redirige tout vers index.php si les 2 conditions précédentes sont vraies
et le $1 = ce qui a été trouvé dans ^(.*)$
exemple
https:// le domaine /fichierA.html
si /fichierA.html n'existe pas, ça redirige vers
https:// le domaine /index.php/fichierA.html
si /fichierA.html existe, il est ouvert normalement
Ca ne répond pas à votre question, mais ça explique ce que vous avez fait.
ça ne redirige pas: pas de [R]
> le "index.php" est toujours présent
normal, pas de redirection ( `[R]` )
tu peux essayer avec:
```text
RewriteEngine On
## /index.php?uri -> /uri
RewriteCond %{HTTP_HOST} ^index.php$
RewriteRule ^ https://%{HTTP_HOST}%{REQUEST_URI} [R=301,L,NE,QSA]
## http -> https
RewriteCond %{HTTPS} off
RewriteRule ^ https://%{HTTP_HOST}%{REQUEST_URI} [R=301,L,NE,QSA]
## lecture index.php
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ index.php/$1 [L]
```
Bonjour,
Merci pour la réponse.
Malheureusement ça ne fonctionne pas non plus ![]()
La redirection http vers https pas de problème, mais pour la réecriture de l'URL, peu importe ce que j'essaye, ça ne fonctionne jamais.
Il y aurait une configuration spécifique à activer ?
Ou alors je n'aurais pas accès dans mon hébergement à ce genre de redirection ?
Bien à vous,
j'ai testé, c'est ok
après je ne peux savoir ce que tu as fais
et index.php, c'est peut-être pas gênant?
Bonjour,
J'ai placé le fichier dans le .htaccess dans /www/ avec à l'identique ce que vous proposiez.
Non, ça n'est pas gênant, mais je ne trouve pas ça très "esthétique" ![]()
Mais bon, ça restera comme ça car je ne vois pas mon problème…
Encore merci.
> Non, ça n'est pas gênant, mais je ne trouve pas ça très "esthétique" ![]()
ça veut dire quoi esthétique?
on parle technique, c'est son emplacement
Oui tout à fait, mais je trouve perturbant d'avoir index.php/xxx/xxx/ du au FrameWork, mais c'est le développeur qui parle et pas la personne qui va surfer sur le site…
> mais je trouve perturbant d'avoir index.php/xxx/xxx/ du au FrameWork
ah tu veux dire que même en saisissant l'url sans index.php, c'est rajouté?
oui, c'est pas "joli"
je vais donner l'adresse ça sera plus simple.
https://www.accrojeux.be
En naviguant, le FrameWork (CodeIgniter pour ne pas le citer) utilise index.php et redispatch ensuite vers les controllers.
Comme ça reste, c'est pas "joli" oui ![]()
ah ok je n'avais pas compris, donc ce que j'ai écrit ne fonctionne pas pour ça voir peut être nuisible
je ne peux t'aider plus
Pas de souci, c'est déjà super d'avoir essayé.
Je ne cherche plus, ça restera comme ça ![]()
Vous avez des infos qui ont l'air pertinente ici : http://sdz.tdct.org/sdz/codeigniter-le-framework-au-service-des-zeros.html
Il est expliqué comment régler le .htaccess + le fichier de config de codeigniter pour virer ce index.php
J'ai vu ce que vous aviez appliqué dans un autre forum, mais plusieurs intervenait pour dire que c'était incomplet.