Bonsoir,

Je suis en train de suivre le tutoriel Développer un site : Jour 2, La structure PHP, et je rencontre un problème avec la réécriture d'URL.

Si j'ai bien compris le concept, on redirige tout le monde dans le dossier "/webroot" et si le fichier ou dossier n'existe pas dans "/webroot", on redirige une seconde fois dans dans "/index.php" à la racine du projet.

Voici le contenu de mes 2 .htaccess :

/.htaccess :

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

/webroot/.htaccess :

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

Voici le problème :

Je précise aussi que je travaille avec MAMP (sous Mac OS)

Voici le message d’erreur que j’ai dans le fichier "apache_error.log" : [Wed Nov 05 18:44:26 2014] [error] [client ::1] Request exceeded the limit of 10 internal redirects due to probable configuration error. Use 'LimitInternalRecursion' to increase the limit if necessary. Use 'LogLevel debug' to get a backtrace.

Je vous remercie par avance.

Bastien.

4 réponses


Remplace ton $1 par $0 ;-) je suis persuadé que ça marchera mieux ou pas. Je ne comprends pas pour quoi cette expression régulière ? Puis pourquoi en littérale ? Essai de virer le L

Sinon vérifie ta configuration de php et regarde si il prends un charge la réécriture d'url

dutbas
Auteur

J'ai essayé toutes tes propositions, et rien ne marche.
D'après ce que je comprend, c'est les des .htaccess qui ce renvoi l'un l'autre.

Merci pour ta réponses.

Bastien.

bonsoir

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

le code original est celui la alors pourquoi avoir rajouté le uri=$1 dans : RewriteRule (.*) index.php?uri=$1 [L]

dutbas
Auteur

Au debut j'avais le code original du tutoriel, et le problème était le même.
J'ai essayé de passer le contenue de la variable ($1) en GET pour éliminer le (/), juste au cas ou ... mais c'est pas ça !

Merci de ton aide.

Bastien.