Bonjour,
J'ai un soucis lorsque je veux implémenter de l'url rewriting sur un domaine (chez infomaniak, php5).
Les pages sont gérées en tant que pseudo-frames avec un include, ce qui donne une URL du type www.site.com/?page=toto
L'index va chercher la page toto.php et l'inclue dans le corps de la page.
Au début de mon index, j'utilise la fonction define(...) et j'inclue mes fichiers conf. Je rappelle ensuite if(!defined(...)) {die('accès interdit')} sur toutes les autres pages du site, afin d'en empêcher l'accès direct.
J'aimerais donc obtenir www.site.com/toto/
Le mod_rewrite est bien activé (testé avec RewriteRule ^test.html$ /test.php [L], ça marche nickel)
J'ai saisi ceci dans mon .htaccess:
ou
(normalement les deux marchent)
et même
En utilisant l'url www.site.com/?page=toto, la page s'affiche. Par contre, en utilisant www.site.com/toto/ c'est comme s'il allait chercher www.site.com/toto.php et non www.site.com/?page=toto. Conclusion: j'ai un magnifique 'accès interdit'...
J'ai tenté d'enlever le define() pour voir comment le tout réagi, mais cette fois c'est mes fichiers conf qui ne sont pas inclus. On dirait qu'il 'zappe' la page index.php et l'include et va directement chercher la page inclue...
Par contre ca marche à la perfection en local (Win, easyPHP 2.0b1)
Auriez-vous une idée?
Merci d'avance =)
J'ai un soucis lorsque je veux implémenter de l'url rewriting sur un domaine (chez infomaniak, php5).
Les pages sont gérées en tant que pseudo-frames avec un include, ce qui donne une URL du type www.site.com/?page=toto
L'index va chercher la page toto.php et l'inclue dans le corps de la page.
Au début de mon index, j'utilise la fonction define(...) et j'inclue mes fichiers conf. Je rappelle ensuite if(!defined(...)) {die('accès interdit')} sur toutes les autres pages du site, afin d'en empêcher l'accès direct.
J'aimerais donc obtenir www.site.com/toto/
Le mod_rewrite est bien activé (testé avec RewriteRule ^test.html$ /test.php [L], ça marche nickel)
J'ai saisi ceci dans mon .htaccess:
Code:
Options +FollowSymlinks
RewriteEngine on
RewriteRule ^([a-z]+)/$ /index.php?page=$1 [L]
Code:
RewriteRule ^([a-z]+)/$ /?page=$1 [L]
et même
Code:
RewriteRule ^toto/$ /index.php?page=toto [L]
En utilisant l'url www.site.com/?page=toto, la page s'affiche. Par contre, en utilisant www.site.com/toto/ c'est comme s'il allait chercher www.site.com/toto.php et non www.site.com/?page=toto. Conclusion: j'ai un magnifique 'accès interdit'...
J'ai tenté d'enlever le define() pour voir comment le tout réagi, mais cette fois c'est mes fichiers conf qui ne sont pas inclus. On dirait qu'il 'zappe' la page index.php et l'include et va directement chercher la page inclue...
Par contre ca marche à la perfection en local (Win, easyPHP 2.0b1)
Auriez-vous une idée?
Merci d'avance =)