Nouveau WRInaute
Bonjours à tous,
j'ai un formulaire pour faire une recherche :
<form action="recherche.php" method="post">
<input type="text" name="search" />
</form>
Je veux que l'url soit la suivante après qu'un utilisateur ait fait une recherche :
http://www.monsite.com/recherche-mots+tappés+par+lutilisateur.html
Pour cela, au tout début de la page recherche.php j'écris le code suivant:
<?php
if (isset($_POST['search']))
{
$blop = trim($_POST['search']); //je récupère ce qui a été tappé dans $blop
$blip = str_replace(' ', '+', $blop); //je rempace les espace entre les mots par des +
header('Location: recherche-' . $blip . '.html'); //je fais la redirection vers une url propre et contenant les mots tappés
}
?>
Maintenant le code présent dans le .htaccess :
Options +FollowSymlinks
RewriteEngine on
RewriteRule ^recherche-(.*)\.html$ /recherche.php?search=$1 [L]
Voilà. Ceci marche très bien, les mots sont correctement séparé par des + , et tout ce passe bien...
Sauf quand je tape un point d'interrogation dans la recherche.
En effet, en tapant uniquement un '?' dans mon formulaire de recherche, l'url lisible dans la barre d'adresse du navigateur est bien : http://www.monsite.com/recherche-?.html.
Cependant, une erreur 404 s'affiche en me disant que le fichier http://www.monsite.com/recherche- n'a pas été trouvé.
Voilà, je souhaiterai tout simplement pouvoir rentrer n'importe quel caractère dans le formulaire.
j'ai un formulaire pour faire une recherche :
<form action="recherche.php" method="post">
<input type="text" name="search" />
</form>
Je veux que l'url soit la suivante après qu'un utilisateur ait fait une recherche :
http://www.monsite.com/recherche-mots+tappés+par+lutilisateur.html
Pour cela, au tout début de la page recherche.php j'écris le code suivant:
<?php
if (isset($_POST['search']))
{
$blop = trim($_POST['search']); //je récupère ce qui a été tappé dans $blop
$blip = str_replace(' ', '+', $blop); //je rempace les espace entre les mots par des +
header('Location: recherche-' . $blip . '.html'); //je fais la redirection vers une url propre et contenant les mots tappés
}
?>
Maintenant le code présent dans le .htaccess :
Options +FollowSymlinks
RewriteEngine on
RewriteRule ^recherche-(.*)\.html$ /recherche.php?search=$1 [L]
Voilà. Ceci marche très bien, les mots sont correctement séparé par des + , et tout ce passe bien...
Sauf quand je tape un point d'interrogation dans la recherche.
En effet, en tapant uniquement un '?' dans mon formulaire de recherche, l'url lisible dans la barre d'adresse du navigateur est bien : http://www.monsite.com/recherche-?.html.
Cependant, une erreur 404 s'affiche en me disant que le fichier http://www.monsite.com/recherche- n'a pas été trouvé.
Voilà, je souhaiterai tout simplement pouvoir rentrer n'importe quel caractère dans le formulaire.