Probleme d'URL Rewriting

Petit nouveau ! | 9 Messages

05 août 2008, 15:23

Bonjour à tous,

Voila j'ai un petit souci, je viens de terminer un site pour une association et j'ai créé un .htaccess avec RewriteRule afin d'améliorer le référencement, voici le code du .htaccess (pour l'instant j'ai mis que la page news simplement pour tester) :

Code : Tout sélectionner

RewriteEngine On RewriteRule ^news/toutes_les_news.html$ index.php [QSA,L] RewriteRule ^news/le_site.html$ index.php?page=News&cat=Le Site [QSA,L] RewriteRule ^news/gymnastique.html$ index.php?page=News&cat=Gymnastique [QSA,L] RewriteRule ^news/tir.html$ index.php?page=News&cat=Tir [QSA,L] RewriteRule ^news/karate.html$ index.php?page=News&cat=Karaté [QSA,L] RewriteRule ^news/veterans.html$ index.php?page=News&cat=Veterans [QSA,L] RewriteRule ^news/arts_plastiques.html$ index.php?page=News&cat=Dessin [QSA,L]
Lorsque j'entre l'url dans mon navigateur : http://monsite.ifrance.com/news/karate.html il m'affiche :
Multiple Choices

The document name you requested (/news/karate.html) could not be found on this server. However, we found documents with names similar to the one you requested.

Available documents:

- /News.php/karate.html (common basename)
- /news.css/karate.html (common basename)
Y à t'il un problème de syntaxe dans mon .htaccess ?

Merci d'avance.

Adrien

ViPHP
ViPHP | 5924 Messages

05 août 2008, 15:39

Où est situé ton .htaccess ?
Quelle est la racine de ton arborescence web ?

Petit nouveau ! | 9 Messages

05 août 2008, 15:42

Mon .htaccess est à la racine de mon site tout comme les pages php, seul les images, le flash et les avatars des membres sont dans des dossiers

Mammouth du PHP | 2937 Messages

05 août 2008, 15:44

Essaie de précéder tous les index.php par un / (certains hébergeurs, en effet, exigent que l'URL réécrite indique le chemin depuis la racine du site). Ou bien ajoute un RewriteBase / avant tes règles de réécriture.

ViPHP
ViPHP | 5924 Messages

05 août 2008, 15:47

Essaye en enlevant le $ final, et si ça ne change rien, en ajoutant un / après chaque ^...
Et sinon active le RewriteLog :

Code : Tout sélectionner

RewriteLog chemin_vers_le_fichier_de_log RewriteLogLevel 5

ViPHP
ViPHP | 5924 Messages

05 août 2008, 15:49

Essaie de précéder tous les index.php par un / (certains hébergeurs, en effet, exigent que l'URL réécrite indique le chemin depuis la racine du site). Ou bien ajoute un RewriteBase / avant tes règles de réécriture.
Comment est-ce qu'ils l'"exigent" ? Je n'ai pas trouvé de directive apache le faisant, ils modifient les sources du module ?

Petit nouveau ! | 9 Messages

05 août 2008, 15:49

Essaie de précéder tous les index.php par un / (certains hébergeurs, en effet, exigent que l'URL réécrite indique le chemin depuis la racine du site). Ou bien ajoute un RewriteBase / avant tes règles de réécriture.
J'ai essayé des 2 façons mais ça marche toujours pas, j'ai lu sur un autre site que certains hébergeurs bloquaient certaines fonctions des .htaccess dont l'URL Rewriting, vous pensez que c'est le cas pour Ifrance ?

Mammouth du PHP | 2937 Messages

05 août 2008, 15:53

Chez bon nombre d'hébergeurs (notamment les gratuits), le module Rewrite_mod d'Apache est désactivé et l'on ne peut donc réécrire les URLs.

ViPHP
ViPHP | 5924 Messages

05 août 2008, 15:53

Essaye pour vérifier :

Code : Tout sélectionner

RewriteRule .* http://www.google.fr/ [L]

Petit nouveau ! | 9 Messages

05 août 2008, 15:54

Chez bon nombre d'hébergeurs (notamment les gratuits), le module Rewrite_mod d'Apache est désactivé et l'on ne peut donc réécrire les URLs.
D'accord ça expliquerait donc pourquoi ça ne marche toujours pas même avec ce que m'a dit Sékiltoyai.
Merci quand même à vous 2

Mammouth du PHP | 2937 Messages

05 août 2008, 15:57

Le mieux, pour en avoir le cœur net, est de mettre en ligne à la racine du site un fichier test.php (contenant un peu de contenu) et le .htaccess suivant

Code : Tout sélectionner

RewriteEngine on RewriteRule ^test\.html$ test.php [L]
et de taper l'URL http://tonsite.com/test.html sur ton navigateur préféré. En règle générale, s'il y a une erreur 404, c'est que l'hébergeur ne permet pas la réécriture d'URL.

Petit nouveau ! | 9 Messages

05 août 2008, 15:59

Essaye pour vérifier :

Code : Tout sélectionner

RewriteRule .* http://www.google.fr/ [L]
J'ai essayé et je tombe sur mon site, je pense que maintenant je suis fixé :wink: