Url rewriting et formulaire

Nouveau WRInaute
Bonsoir à tous

je poste ici car j'ai un petit problème pour effectuer de l'url rewriting sur un formulaire. Tout d'abord voici le code de mon formulaire :

Code:
<form action="list.php" method="get">
	<input type="hidden" name="pays" value="<?=$_GET['pays']?>">
		<select name="ville" size="9" style="width:193px;">
			<? while ($res = mysql_fetch_array($allvilles)) { ?>
		<option value="<?=$res["ville"]?>-<?=$res["dept"]?>"><?=$res["ville"]?>&nbsp;(<?=$res["dept"]?>)</option>
			<? } ?>
		</select>
	<input type="submit" value="Rechercher" OnClick="return Redirect();"/>
</form>

et le code javascript

Code:
function Redirect() {
	document.location.href = "http://monsite.com/" + doc.form.pays.value + "-" + doc.form.ville.value + ".html";
	document.submit();
	return true;
}

Je ne met pas les regles de redirection car ce code ne marche pas.

Mon but est d'obtenir une url du type pays-ville.html . Malheureusement je ne peut pas mettre directement le pays et la ville dans le champs action du form.
Je me suis donc penché sur la redirection. Mais j'arrive toujours sur la page list.php...

Merci de m'aider.
 
WRInaute accro
le .htaccess
Code:
RewriteRule   ^pays-ville\.html$    /list.php [L]

tu dois passer les valeurs avec la methode POST et mettre l'url complete

Code:
<form name="form1" method="post" action="http://www.tonsite.com/pays-ville.html">

maintenant, si tu veux que pays et la ville soient differentes a chaque fois, pour moi c'est impossible techniquement.
 
WRInaute passionné
J'ai un peu testé, voilà une solution qui marche. A toi d'adapter
j'ai passé le form en post pour ne pas avoir le GET qui traine, si tu veux rester en get tu peux annuler les valeurs des champs dans la fonction go()

Code:
<html>

<head>
<title>soluce qui marche</title>
</head>

<body>

<script type="text/javascript">
function go() {
   document.forms['form'].action = "http://tonsite.fr/" + form.pays.value + "-" + form.ville.value + ".html";
   document.forms['form'].submit();
   return true;
} 
</script>

<form action="list.php" method="post" name="form">
   <input type="hidden" name="pays" value="france">
      <select name="ville" size="9" style="width:193px;">
      <option value="grenoble-isere">grenoble</option>
      <option value="lyon-rhone">lyon</option>
      </select>
   <input type="submit" value="Rechercher" onclick="javascript:go();return false;"/>
</form>

</body>

</html>
:wink:
 
WRInaute accro
C'est kool ca :D :D :D

mais si je marque l'adresse directement dans le navigateur: -http://tonsite.fr/payas-ville.html, je tombe sur 1 jolie 404 ? c'est ca ?
 
WRInaute passionné
KOogar a dit:
C'est kool ca :D :D :D

mais si je marque l'adresse directement dans le navigateur: -http://tonsite.fr/payas-ville.html, je tombe sur 1 jolie 404 ? c'est ca ?

bah non, pourquoi ? si il fait de l'URL rewriting derrière, tu va tomber sur une page qui va bien :wink:
Après vu que les moteurs ne suivent pas les formulaires, je ne vois pas trop à quoi ça peut servir ?!?
Peut être pour éviter des éventuels liens et le duplicate sur les pages list.php?... et le duplicate qui va avec ?
 
Nouveau WRInaute
jeroen a dit:
Après vu que les moteurs ne suivent pas les formulaires, je ne vois pas trop à quoi ça peut servir ?!?
Peut être pour éviter des éventuels liens et le duplicate sur les pages list.php?... et le duplicate qui va avec ?

Merci pour vos réponses.
Un truc que je comprend pas: tu dis que les moteurs ne suivent pas les formulaire, donc ma page list.php, quel que soit les paramètres, ne peut être référencée. Lorsque je tape le site et une ville sur Google, je trouve des liens qui ne sont normalement accessible que par cette page (list.php). Je voudrai donc savoir comment Google a fait pour référencer ces pages sans référencer list.php.

Merci

Edit: autant pour moi, elle sont accessible à partir d'un autre endroit du site. Mais alors comment référencer la page list.php ?
 
WRInaute accro
jeroen a dit:
KOogar a dit:
C'est kool ca :D :D :D

mais si je marque l'adresse directement dans le navigateur: -http://tonsite.fr/payas-ville.html, je tombe sur 1 jolie 404 ? c'est ca ?

bah non, pourquoi ? si il fait de l'URL rewriting derrière, tu va tomber sur une page qui va bien :wink:
Après vu que les moteurs ne suivent pas les formulaires, je ne vois pas trop à quoi ça peut servir ?!?
Peut être pour éviter des éventuels liens et le duplicate sur les pages list.php?... et le duplicate qui va avec ?

je disais ca a cause du regex. Il faut imperativement mettre le formulaire dans un repertoire unique si on ne veut pas que les urls se croisent et que tout le site soit rediriger sur list.php, a cause du regex qui doit prendre n urls a la volée :

Code:
RewriteRule   ^(.*)\.html$    /list.php [L]

D'un autre coté, je vois pas non plus l'interet d'un rewriting. Google n'indexe pas les requetes de Google.
 

➡️ Offre MyRankingMetrics ⬅️

pré-audit SEO gratuit avec RM Tech (+ avis d'expert)
coaching offert aux clients (avec Olivier Duffez ou Fabien Faceries)

Voir les détails ici

coaching SEO
Discussions similaires
Haut