Page 1 sur 1

Rewrite URL impossible :(

Posté : 16 oct. 2005, 12:20
par Aurelie
Bonjour à tous

Voilà, il y a quelques mois, j'ai changé mon site. En gros j'ai viré xoops et mis mon portail maison à la place (bientot fini).

Et il y a peu, j'ai découvert les redirections 301.

Mon site est hébergé sur le serveur dédié d'un ami chez ovh. Utilisant l'URL Rewriting pour les sites de ses clients, il m'a donné un exemple pour que je puisse le faire. mais ça ne marche absoluement pas :/
RewriteEngine on
RewriteRule ^modules/news/article.php?storyid=([0-9]*)$ actualite.php?id=$1 [R=301]
RewriteRule ^modules/newbb/$ forum/ [R=301]
RewriteRule ^modules/sections/article.php?storyid=([0-9]*)$ dossier.php?id=$1 [R=301]
RewriteRule ^actualite/article.php?storyid=([0-9]*)$ actualite.php?id=$1 [R=301]
Quelqu'un pourrait m'aider ? Parce que là ça ne marche absoluement pas :/

Posté : 16 oct. 2005, 12:29
par fab
est ce que tu as mod_rewrite de apache ?

Posté : 16 oct. 2005, 22:51
par Aurelie
Non mais mon hebergeur l'utilise sur son dédié pour les sites de ses clients. C'est donc qu'il l'a (pour rappel mon site est hébergé sur le serveur dédié ovh d'un ami qui l'utilise à titre professionnel).

Posté : 17 oct. 2005, 07:44
par Ripat
Il peut y avoir plusieurs causes:
  • Soit ton .htaccess n'est pas lu --> vérifier que tu as AllowOverride All pour ton répertoire de test. Pour tester, faire une erreur intentionnelle dans le htaccess. Si tu as une erreur 500 (Internal Server Error) c'est qu'il est bien lu.
  • Soit, le mod_rewrite ne fonctionne pas ou n'est pas installé (vérifier avec apache2 -l ou httpd -l en shell pour les modules compilés ou bien vérifier si le mod_rewrite n'a pas été chargé en module par un LoadModule rewrite_module dans un fichier de config d'Apache)
  • Soit, tout tourne correctement mais c'est ta règle de rewrite ne marche pas. Essaye une règle simple:

    Code : Tout sélectionner

    RewriteEngine On Options +FollowSymlinks # va réécrire toutes tes pages vers phpfrance.com RewriteRule ^(.*)$ http://www.phpfrance.com [L]

Posté : 17 oct. 2005, 13:30
par fab
tu peux aussi voir si tu as mod_rewrite de apache de dans le phpinfo ( apaches modules il me semble )

Posté : 17 oct. 2005, 17:12
par Aurelie
la redirection marche bien, ça a redirigé toutes mes pages vers phpfrance.

ca vient donc bien de la synthaxe. mais dans ce cas, quel est le probleme ?
RewriteRule ^modules/news/article.php?storyid=([0-9]*)$ actualite.php?id=$1 [R=301]
ca ça voudrait dire que quand on va sur http://www.damechaos.com/modules/news/a ... sotyid=456 (par exemple) on se retrouve par redirection 301 sur http://www.damechaos.com/article.php?id=456

c'est bien ça ?

Sauf que c'est pas le cas :(

j'ai voulu mettre ça :
RewriteRule ^actualite.php?id=([0-9]*)$ modules/news/article.php?id=$1 [L]
mais ça n'a pas marché :/

Posté : 18 oct. 2005, 07:33
par Ripat
Essaye en échappant le ? qui signifie quelque chose en regex: le caractère qui le précède est optionnel dans motif.

exemple.php?autrechose matchera exemple.phautrechose et exemple.phpautrechose mais jamais exemple.php?autrechose

Essye donc

Code : Tout sélectionner

RewriteRule ^modules/news/article.php\?storyid=([0-9]*)$ actualite.php?id=$1 [R=301]
Il y a aussi peut-être un problème de chemin de fichier vers la redirection. Pour t'en assurer essaye d'abord :

Code : Tout sélectionner

RewriteRule ^modules/news/article.php\?storyid=([0-9]*)$ http://www.phpfrance.com [L]
tu peux aussi voir si tu as mod_rewrite de apache de dans le phpinfo ( apaches modules il me semble )
Effectivement! Merci pour l'info :wink:

Pourquoi faire simple quand on peut faire compliqué?

Posté : 18 oct. 2005, 10:16
par mere-teresa
Modération : je déplace ton message dans le forum "Autre" où il aura peut-être encore plus de réponses, étant donné que ta question concerne le serveur Apache et pas seulement PHP.

Posté : 18 oct. 2005, 10:28
par Aurelie
Bon ben ca marche quand même pas même avec des \ devant les ?