galere url rewritting

Par François Cammas, il y a 11 ans


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, il y a 11 ans

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

Peut être le .htaccess du dossier webroot ?

zil, il y a 11 ans

As-tu d'autres lignes avant ?

François Cammas, il y a 11 ans

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

Couss, il y a 11 ans

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, il y a 11 ans

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

François Cammas, il y a 11 ans

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