Rewrite URL impossible :(

Eléphanteau du PHP | 20 Messages

16 oct. 2005, 12:20

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 :/

ViPHP
fab
ViPHP | 2657 Messages

16 oct. 2005, 12:29

est ce que tu as mod_rewrite de apache ?
Seul l'intelligent a le pouvoir de se trouver con
try { work(); } catch(FlemmeExeption $e) { sleep(84600); }

Eléphanteau du PHP | 20 Messages

16 oct. 2005, 22:51

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).

ViPHP
ViPHP | 1380 Messages

17 oct. 2005, 07:44

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]
ripat

ViPHP
fab
ViPHP | 2657 Messages

17 oct. 2005, 13:30

tu peux aussi voir si tu as mod_rewrite de apache de dans le phpinfo ( apaches modules il me semble )
Seul l'intelligent a le pouvoir de se trouver con
try { work(); } catch(FlemmeExeption $e) { sleep(84600); }

Eléphanteau du PHP | 20 Messages

17 oct. 2005, 17:12

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é :/

ViPHP
ViPHP | 1380 Messages

18 oct. 2005, 07:33

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é?
ripat

Modérateur PHPfrance
Modérateur PHPfrance | 6037 Messages

18 oct. 2005, 10:16

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.
Règle n°2 du webmaster : Toujours commencer par le HTML qu'on veut obtenir....toujours ! :priere:
J'aime apprendre de nouvelles choses.

Eléphanteau du PHP | 20 Messages

18 oct. 2005, 10:28

Bon ben ca marche quand même pas même avec des \ devant les ?