Htaccess pour avoir une URL "MVC"

Par Nicwalle, il y a 11 ans


Bonjour,
Je ne pense pas que mon titre soit des plus clairs mais je m'explique:
J'ai à la racine de mon site un fichier .htaccess. J'aimerais que celui-ci me redirige toutes les url du type:

http://www.monsite.com/tutoriels/watch/le-tuto-1
vers
http://www.monsite.com/webroot/index.php?p=tutoriels/watch/le-tuto-1

J'ai donc le htaccess à la racine qui contient:

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

et celui dans le dossier webroot qui contient:

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

J'ai le résultat que je désirais MAIS mon style et mon javascript ne sont plus intégré correctement (certainement à cause des slashs...)

Je me demandais donc comment faire pour que la première url soit redirigée vers une URL du type:
http://www.monsite.com/webroot/index.php?param1=tutoriels&param2=watch&param3=le-tuto-1&...

En espérant avoir été le plus clair possible, j'espère que vous avez compris et que vous saurez m'aider,

Merci d'avance,
Nicwalle

7 réponses

Nicwalle, il y a 10 ans

Quelqu'un a une idée?

gtnsimon, il y a 10 ans

Bonjour, en ajoutant cette balise ?

Nicwalle, il y a 10 ans

Je vais rester ça demain, merci ;)

zkiller, il y a 10 ans

sinon fait toi un helper qui gere tes url comme dans les framework :P

Nicwalle, il y a 10 ans

3610gaga, j'ai eu l'occasion de tester la balise "base" que tu m'as conseillé et ça fonctionne!... Merci ;)

Malgré tout, quelqu'un sait-il comment faire en sorte que mes url's soient redirigées vers l'url de type: http://www.monsite.com/webroot/index.php?param1=tutoriels&param2=watch&param3=le-tuto-1&...
et ce en htaccess(je suis assez nul en expressions régulières et d'autant plus en htaccess :D).

Si aucune autre solution ne me parvient, je marquerai la réponse de 3610gaga comme "Répondant à ma question"

Merci à tous,
Nicwalle

hugopb82, il y a 10 ans

En htaccess ça me semble compliqué mais pourquoi ne pas laisser ton htaccess tel qu'il est et faire le traitement côté PHP?
Un indice ;)

$parts = explode('/', $_GET['p']);
Nicwalle, il y a 10 ans

Pour ce qui est du php, ça va mais j'aurais préféré pouvoir me passer de la balise "base".
Maintenant, si comme tu as l'air de le dire, en htaccess c'est trop complexe, alors j'utiliserai cette balise "base".

Merci à tous,
Nicwalle