Bonjourà tous,
Désolé tout d'abord d'arriver ici avec une question de parfait débutant, mais ce n'est pas faute d'avoir cherché une solution un peu partout.
J'ai joué avec pendant quelques heures, fureté à droite et à gauche mais bon, là.....
J'ai essayé de faire l'explication la + complète possible de ce qui m'arrive mais dans ces moments de grande solitude, on n'est rarement très méthodique !
Dans mon htaccess(j'utilise CMSMS) j'ai mis en place le rewriting url sans souci + les filtrages qui vont bien.
VOICI MON HTACCESS
Dans mon nouveau site(sous cmsms) je passe 2 paramètres à une page sous la forme suivante :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55 #Options -Indexes RewriteEngine On # RewriteBase / --------------------------MA SYNTAXE DESOLANTE-------------------------------------------- RewriteCond %{REQUEST_URI} ^/ensemble/expertise/([0-9]+)/25/([a-z0-9-]+).*$ RewriteRule ^(.*)ensemble/expertise/([0-9]+)/25/([a-z0-9-]+).*$ http://www.monsite.com/index.php?page=groupe-expert&clefville=$1&clefgroupe=25 [L,R=301] --------------------------------------------------------------------------------------------- RewriteRule ^formations-informatiques/([0-9]+)/([0-9]+)/([a-z0-9-]+)\.html$ /index.php?page=groupe-expert&clefville=$1&clefgroupe=$2 [QSA] RewriteCond %{REQUEST_FILENAME} !-f [NC] RewriteCond %{REQUEST_FILENAME} !-d [NC] RewriteRule ^(.+)$ index.php?page=$1 [QSA] # URL Filtering helps stop some hack attempts #IF the URI contains a "http:" RewriteCond %{QUERY_STRING} http\: [OR] #OR if the URI contains a "[" RewriteCond %{QUERY_STRING} \[ [OR] #OR if the URI contains a "]" RewriteCond %{QUERY_STRING} \] [OR] #OR if the URI contains a "<script>" RewriteCond %{QUERY_STRING} (\<|%3C).*script.*(\>|%3E) [NC,OR] #OR script trying to set a PHP GLOBALS variable via URL RewriteCond %{QUERY_STRING} GLOBALS(=|\[|\%[0-9A-Z]{0,2}) [OR] #OR any script trying to modify a _REQUEST variable via URL RewriteCond %{QUERY_STRING} _REQUEST(=|\[|\%[0-9A-Z]{0,2}) [OR] #IF the URI contains UNION RewriteCond %{QUERY_STRING} UNION [OR] #OR if the URI contains a * RewriteCond %{QUERY_STRING} \* #then deny the request (403) RewriteRule ^.*$ - [F,L] # End URL Filtering # force le passage a utilisation php5 SetEnv PHP_VER 5 SetEnv REGISTER_GLOBALS 0 # No sense advertising what we are running ServerSignature Off
index.php?page=groupe-expert&clefville=22&clefgroupe=49
Les url de mon ancien site(développé à la main à l'époque héroique) étaient de la forme suivante:
Code : Sélectionner tout - Visualiser dans une fenêtre à part http://www.monsite.com/ensemble/expertise/22/25/nomfichier.html
La variable clefville reste la même, la table qui gère les villes est identique, par contre les clefgroupe ont changé- ici l'ancien était 49 et il passe à 25 pour l'exemple)
En clair je rentre le nouvel id "clefgroupe" en dur mais j'essaie de repêcher dans l'url l'id "clefville"
J'ai donc rajouté :
et voilà ce que j'obtiens:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 RewriteCond %{REQUEST_URI} ^/ensemble/expertise/([0-9]+)/25/([a-z0-9-]+).*$ RewriteRule ^(.*)ensemble/expertise/([0-9]+)/25/([a-z0-9-]+).*$ http://www.monsite.com/index.php?page=groupe-expert&clefville=$1&clefgroupe=25 [L,R=301]
En gros, je suis incapable de lui faire récupérer la première variable (clefville) contenue dans l'url pour lui faire réécrire cette variable dans mon Rewrite Rule.
Code : Sélectionner tout - Visualiser dans une fenêtre à part http://www.monsite.com/index.php?page=groupe-expert&clefville=&clefgroupe=25
Merci à tous pour votre aide![]()
Partager