1

Bonjour tout le monde.

J'ai déjà eu quelques cas d'HTACCESS étranges mais celui-là, je suis pas au clair dessus.

Je souhaite passer d'un format d'URL à un autre, normal quoi.

Ancien format :
http://www.monsite.fr/?rub=topic&topic=123456

Format souhaité :
http://www.monsite.fr/sujet/123456/

Pour ce faire, les directves de mon .htaccess sont les suivantes :

Options +FollowSymLinks +ExecCGI

<IfModule mod_rewrite.c>
RewriteEngine On

# uncomment the following line, if you are having trouble
# getting no_script_name to work
#RewriteBase /

# Pour ancien système
RewriteRule ^/?rub=topic&topic=([0-9]*) http://www.monsite.fr/sujet/$i/ [R=302]


# we skip all files with .something
#RewriteCond %{REQUEST_URI} \..+$
#RewriteCond %{REQUEST_URI} !\.html$
#RewriteRule .* - [L]

# we check if the .html version is here (caching)
#RewriteRule ^$ index.html [QSA]
#RewriteRule ^([^.]+)$ $1.html [QSA]
#RewriteCond %{REQUEST_FILENAME} !-f

# no, so we redirect to our front web controller
RewriteRule ^(.*)$ index.php [QSA,L]

</IfModule>

La plupart sont déjà mises en place par Symfony. Mes rajouts sont en rose.

Z'auriez une idée pour que ça fonctionne ? J'ai pas réussi avec les divers tutos proposés par Google.

Merci
avatar
Slammeur (qu'on voit danser, le long des golfes clairs).
Mon blog qui parle de jeux-vidéo

2

$i ?? c'est pas $1 ?
Ancien pseudo : lolo

3

si, et à mon avis tu les à même inversés,

RewriteRule ^/?rub=topic&topic=([0-9]*) http://www.monsite.fr/sujet/$1/ [R=302]

->

RewriteRule ^/sujet/([0-9]*)/$ /?rub=topic&topic=$1 [R=302]

?
et la le mec il le pécho par le bras et il lui dit '

4

non, ils étaient dans le bon sens.
Ancien pseudo : lolo

5

Spipu (./2) :
$i ?? c'est pas $1 ?

Désolé, erreur pour le $i au lieu de 1. J'ai mal recopié.

RewriteRule ^/?rub=topic&topic=([0-9]*) http://www.monsite.fr/sujet/$1/ [R=302]

...ne fonctionne pas.
avatar
Slammeur (qu'on voit danser, le long des golfes clairs).
Mon blog qui parle de jeux-vidéo

6

heu, une réécriture d'url sera toujours
url d'entrée -> vrai fichier phpRewriteRule ^/?rub=topic&topic=([0-9]*) http://www.monsite.fr/sujet/$1/ [R=302]

dis à apache que toute les url demandant
/?rub=machin&chose vont en fait pointer en interne vers /sujet/bidule

donc c'est inversé
et la le mec il le pécho par le bras et il lui dit '

7

Yop, merci mais ça ne passe pas.

Options +FollowSymLinks +ExecCGI

<IfModule mod_rewrite.c>
RewriteEngine On

# uncomment the following line, if you are having trouble
# getting no_script_name to work
#RewriteBase /

# Pour ancien système
RewriteRule ^/?rub=topic&topic=([0-9]*) http://www.monsite.fr/sujet/$1/ [R=302]

.....etc.....
avatar
Slammeur (qu'on voit danser, le long des golfes clairs).
Mon blog qui parle de jeux-vidéo

8

c'est normal que tu rediriges une url relative vers une absolue ?
quand tu dis que ça ne marche pas, c'est-à-dire que ça ne redirige pas ? 404 ?
avatar
« Le bonheur, c'est une carte de bibliothèque ! » — The gostak distims the doshes.
Membrane fondatrice de la confrérie des artistes flous.
L'univers est-il un dodécaèdre de Poincaré ?
(``·\ powaaaaaaaaa ! #love#

9

./6 l'url d'entrée, c'est l'ancien format pas beau, l'url de sortie, c'est le vrai fichier.

en fait, ce qu'il veut, c'est que si quelqu'un arrive sur /?rub=topic&topic=123456 (ancien système), ca redirige vers /sujet/123456/, puis que ca applique les regles de rewrite de symfony
Ancien pseudo : lolo

10

Ça ne fait rien du tout.
J'avais fait un test avec (.*) -> google.fr et ça passait, donc c'était interprété.
Je cale.
avatar
Slammeur (qu'on voit danser, le long des golfes clairs).
Mon blog qui parle de jeux-vidéo

11

Spipu (./9) :
./6 l'url d'entrée, c'est l'ancien format pas beau, l'url de sortie, c'est le vrai fichier.

en fait, ce qu'il veut, c'est que si quelqu'un arrive sur /?rub=topic&topic=123456 (ancien système), ca redirige vers /sujet/123456/, puis que ca applique les regles de rewrite de symfony

Valà :P
avatar
Slammeur (qu'on voit danser, le long des golfes clairs).
Mon blog qui parle de jeux-vidéo

12

ok, donc en gros ta mis à jour symphonie, et entre deux release ils sont passé de la clef de Sol à la clef de Fa, sans filer les outils pour passer d'une partition à une autre ? génial cheeky

essais peu être avec L en plus du 302, ou avec $ à la fin de la regex #bidouille#
et la le mec il le pécho par le bras et il lui dit '

13

w.monsite.fr/sujet/$1/ou peu être comme ca ?RedirectMatch ^/?rub=topic&topic=([0-9]*)$ http://ww
et la le mec il le pécho par le bras et il lui dit '

14

ou peut-être boudou pas fort ahahah
"l'étendue de la solitude d'un être n'a d'égale, que l'immensité des pensées qui emplissent son esprit."

15

r043v (./12) :
ok, donc en gros ta mis à jour symphonie, et entre deux release ils sont passé de la clef de Sol à la clef de Fa, sans filer les outils pour passer d'une partition à une autre ? génial mod.gif


Non, je passe du "from scratch" à Symfony. Génial non ? :P
avatar
Slammeur (qu'on voit danser, le long des golfes clairs).
Mon blog qui parle de jeux-vidéo

16

r043v (./13) :
w.monsite.fr/sujet/$1/ou peu être comme ca ?RedirectMatch ^/?rub=topic&topic=([0-9]*)$ http://ww

Nope
avatar
Slammeur (qu'on voit danser, le long des golfes clairs).
Mon blog qui parle de jeux-vidéo

17

et si tu vire le lien absolue et le 302 ? l'url serais réécrite au bon format puis parsé par les directives ajoutées par symphonie ?
et la le mec il le pécho par le bras et il lui dit '

18

r043v (./17) :
et si tu vire le lien absolue et le 302 ? l'url serais réécrite au bon format puis parsé par les directives ajoutées par symphonie ?

En fait, l'imminence de la sortie de mon projet m'empêche ce type de manip. Avant que les moteurs de recherche n'indexent les nouvelles pages aux bons formats, les anciens formats seront gardés avec des risques d'URL en 404, ce que je veux éviter.

Valà :P
avatar
Slammeur (qu'on voit danser, le long des golfes clairs).
Mon blog qui parle de jeux-vidéo

19

et en mettant [L,302] ?

L définie que les autre règles ne serons pas appliquées
et la le mec il le pécho par le bras et il lui dit '

20

montreuillois > il ne faudrait pas escaper le point d'interrogation ?
^/\?rub=topic etc.

pq normalement ? est un caractère spécial en regexp
avatar
« Le bonheur, c'est une carte de bibliothèque ! » — The gostak distims the doshes.
Membrane fondatrice de la confrérie des artistes flous.
L'univers est-il un dodécaèdre de Poincaré ?
(``·\ powaaaaaaaaa ! #love#

21

il ne faut pas mettre L, sinon les regles de symfony ne seront pas appliquées.

et sinon, en effet, il faut escapé le ?
Ancien pseudo : lolo

22

ben justement si les règles de symphonie sont appliquées elle dégagerons peu être le 302, la ca fait que le 302, ca refait la demande avec /sujet/machin et la les règles sont appliquées, c'est ce qu'il voulais ^^
et la le mec il le pécho par le bras et il lui dit '

23

J'ai eu quelques soucis quand je mettais en place mes propres règles avec mod_rewrite, et pour ça activer les logs de rewrite_mod m'a bien aidé. (Deux lignes dans la configuration centrale de apache)
RewriteLog /var/log/apache2/rewrite_log
RewriteLogLevel 3
(Faut ajuster le niveau de sensibilité à ce que tu juges nécessaire. 1 est vraiment inutile, et 3 est parfois trop détaillé, tandis que 2 ne l'est parfois pas assez tongue)

Sinon, rapport à
r043v (./6) :
RewriteRule ^/?rub=topic&topic=([0-9]*) http://www.monsite.fr/sujet/$1/ [R=302]

dis à apache que toute les url demandant
/?rub=machin&chose vont en fait pointer en interne vers /sujet/bidule
(Et aussi à un peu tous les autres posts en fait…)
Pourquoi garder le « http://www.monsite.com/ ». C'est pas de là que vient le problème ? (Car bon, tout le monde parle en relatif, et c'est normal puisque les RewriteRule fonctionnent en relatif, mais pourquoi indiquer l'url en absolu dans la règle ?)
avatar
Le scénario de notre univers a été rédigée par un bataillon de singes savants. Tout s'explique enfin.
T'as un problème ? Tu veux un bonbon ?
[CrystalMPQ] C# MPQ Library/Tools - [CrystalBoy] C# GB Emulator - [Monoxide] C# OSX library - M68k Opcodes

24

Spipu (./21) :
il ne faut pas mettre L, sinon les regles de symfony ne seront pas appliquées.

et sinon, en effet, il faut escapé le ?

Il fallait escaper le ? en effet.

Merci à tous...

Sinon j'ai planté mon serveur autre soucis...

Merci encore pour votre aide.
avatar
Slammeur (qu'on voit danser, le long des golfes clairs).
Mon blog qui parle de jeux-vidéo