Bonjour a tous,

je teste pour la première fois de l'url rewriting. et il y a un truc de je comprends pas.
Cela fonctionne

RewriteEngine On
RewriteRule (.*) webroot/index.php [L]

Mais pas ça

RewriteEngine On

RewriteRule (.*) webroot/$1 [L]

Quelqu'un peut m'expliquer ? Pourtant je pense que c'est à l'identique du tuto de grafikart

6 réponses


Couss
Réponse acceptée

normalement ce .htaccess doit être placer avant le dossier webroot, à la racine de ton site

RewriteEngine On
RewriteRule (.*) webroot/$1 [L]

C'est lui qui redirige toutes les entrées vers webroot

dans webroot tu doit avoir normalement un .htaccess qui ressemble à celui ci :

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

Lui redirige les appels vers le fichier index.php s'il ne s'agit pas d'un fichier ou dossier existant

François Cammas
Auteur
Réponse acceptée

Je valide. C'est les parentheses au lieu des accolades qui faisait planter tout.

Etrange car j'ai exactement les même ligne de code et cela fonctionne

Peut être le .htaccess du dossier webroot ?

As-tu d'autres lignes avant ?

Merci a vous 2.
Je n'ai pas de ligne avant dans .htaccess
J'ai fait ce code sans .htaccess dans le webroot.

A ok. Deja je pensais que cela devais fonctionner tout seul.
Si je fesais index.php ca devait lancer webroot/index.php sans mettre de .htaccess dans le webroot.

Quand j'ai testé avec un .htaccess dans le webroot, je crois que les condtion je les mis entre parentheses au lien d'accolades.

Je teste sur ma config ce soir et j'actualise le topic