Réécriture d'une url

Répondre


Cette question est un moyen d’empêcher des soumissions automatisées de formulaires par des robots.
Smileys
:D :) :( :o :shock: :? 8-) :lol: :x :P :oops: :cry: :evil: :twisted: :roll: :wink: :!: :?: :idea: :arrow: :| :mrgreen: =D> #-o =P~ :^o :non: :priere: 8-|
Voir plus de smileys
  Revue du sujet
 

  Étendre la vue Revue du sujet : Réécriture d'une url

Re: Réécriture d'une url

par albius » 08 juin 2010, 09:36

Ok, en fait, je pensais que cette réécriture se faisait automatiquement lorsque l'on cliquait sur une interaction. C'est nettement plus clair à présent.
Merci beaucoup.

Re: Réécriture d'une url

par stealth35 » 07 juin 2010, 16:54

dans ton html c'est
<a href="test-prod-modifProd">Gestion des produits</a>
la réécriture ca réécris pas l'adresse du navigateur

Re: Réécriture d'une url

par albius » 07 juin 2010, 16:51

non mais elle doivent exister
En fait, ce que tu essayes de me dire, c'est que je dois obligatoirement retrouver les mêmes données de part et d'autre de la règle pour que cela puisse opérer (?)
J'ai repris ton exemple (désolé, mais je crois que tu vas faire prof cet après-midi. Enfin, si tu veux bien :wink: ) que j'ai copié dans un nouveau fichier basique:
<body>
      <a href="test.php?menu=prod&content=modifProd">Gestion des produits</a>
</body>
et ta règle htaccess:

Code : Tout sélectionner

RewriteRule ^(test-(\w+)-(\w+))$ test.php?menu=$1&content=$2 [L]
Mais quand je clique sur le lien, le navigateur me revoie comme adresse:

Code : Tout sélectionner

http://localhost/phpLearning/OC2/test.php?menu=prod&content=modifProd
Ce n'est pas l'url escomptée...

Re: Réécriture d'une url

par stealth35 » 07 juin 2010, 15:41

non mais elle doivent exister, l'url rewiting va convertir une adresse en une autre

par exemple :
adminIndex-prod-modifProd

deviendra
adminIndex.php?menu=prod&content=modifProd

(et non l'inverse)

dans ton htaccess tu aurais
RewriteRule ^(adminIndex-(\w+)-(\w+))$ adminIndex.php?menu=$1&content=$2 [L]

Re: Réécriture d'une url

par albius » 07 juin 2010, 15:34

Je ne suis pas certain d'avoir compris ce que tu as écris (Déjà que je suis pas sûr d'avoir totalement pigé la documentation concernant l'url rewriting...)
Tu veux dire que je dois spécifier explicitement le contenu des variables dans l'url d'arrivée:

Code : Tout sélectionner

RewriteRule ^(adminIndex.php)$ adminIndex.php?menu=prod&content=modifProd [L]
merci,

Re: Réécriture d'une url

par stealth35 » 07 juin 2010, 14:54

hello, ca va pas parce que nul part tu lui donnera les valeurs avec adminIndex.php
et en faisant ^(adminIndex.php)$ adminIndex.php?menu=$1&content=$2
y'a aucun groupe 2 puisque la seul groupe c'est "adminIndex.php"

ca donnerai
adminIndex.php?menu=adminIndex.php&content=?????????

Réécriture d'une url

par albius » 07 juin 2010, 14:51

Bonjour,

Je cherche à ce qu'une url de type

Code : Tout sélectionner

<a href="adminIndex.php?menu=prod&content=modifProd"...</a>
devienne

Code : Tout sélectionner

adminIndex.php
Pour ce faire, j'ai écris dans le fichier htaccess:

Code : Tout sélectionner

RewriteEngine on RewriteRule ^(adminIndex.php)$ adminIndex.php?menu=$1&content=$2[L]
Mais les variables envoyées par cette adresse vont être utilisées par un script php pour la construction des pages. Sinon, s'exécutera une inclusion par défaut:
switch ($menu) {
case "prod" : include('files/gestProd/prodMenu.php');
break;
...
default : include('files/gestComm/comMenu.php');
...
switch ($content) {
case "modifProd" : include('files/gestProd/editProd.php');
break;
default : include('files/gestComm/gestionCom.php');
}
Actuellement, non seulement lorsque je clique sur le lien, je n'ai pas de réécriture du lien, mais en plus, le redirection ne s'effectue plus. Pourquoi ?
merci,