Un ordre pour le htacces ?

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 : Un ordre pour le htacces ?

Re: Un ordre pour le htacces ?

par Ryle » 10 mai 2016, 00:45

Bonsoir,

S'il n'y a aucune règle pour distinguer tes url, le serveur sera bien incapable de le faire à ta place. Au lieu de mélanger actus et loisirs dans une même rubrique "actu", il te suffit de dissocier celles-ci en changeant le nom du répertoire parent par exemple :

Code : Tout sélectionner

# -- loisir + région RewriteRule ^loisir/([A-Za-z0-9_-]+)/([A-Za-z0-9_-]+).html$ list.php?region=$1&loisir=$2 # -- actu+ région + ville RewriteRule ^actu/([A-Za-z0-9_-]+)/([A-Za-z0-9_-]+).html$ list.php?region=$1&ville=$2
Et pour répondre à ta question, oui, l'ordre des redirection est importante. Si tu as une condition sur A et une condition sur A+B, la première condition est vraie dans les deux cas (A tout seul ou A avec quelque chose), alors que la seconde ne sera vraie que si tu as A ET B et pas A tout seul ou B tout seul. Il faut donc prioriser tes clauses :)

Re: Un ordre pour le htacces ?

par yoann38 » 09 mai 2016, 22:02

Oui mais je souhaite que mes urls soit toutes pareil donc comment solutionner le problème

exemple:

actu/rhone-alpes/grenoble.html
actu/rhone-alpes.html
actu/rhone-alpes/bricolage.html
actu/rhone-alpes/bricolage-page-2.html
....
En gros je veux garder ce systeme de sous dossier enfait
Merci encore

J'ai quand même essayer par curiosité:
# -- actu+ région + ville
RewriteRule ^actu/region-([A-Za-z0-9_-]+)/ville-de-([A-Za-z0-9_-]+).html$ list.php?region=$1&ville=$2

# -- actu+ région + loisir
RewriteRule ^actu/region-([A-Za-z0-9_-]+)/([A-Za-z0-9_-]+).html$ list.php?region=$1&loisir=$2
Ca ne prend en compte que la premiere ligne et c tt ...

Re: Un ordre pour le htacces ?

par or 1 » 09 mai 2016, 21:17

^actu/([A-Za-z0-9_-]+)/([A-Za-z0-9_-]+).html$
^actu/([A-Za-z0-9_-]+)/([A-Za-z0-9_-]+).html$
vu que c'est 2 fois exactement la même chose, si cela passe pour la première ligne, ce ne peux jamais valider la seconde ligne. il faut avoir 2 expressions différentes, avec un _ au lieu d'un / par exemple.

Un ordre pour le htacces ?

par yoann38 » 09 mai 2016, 21:13

Salut à tous.
Je souhaiter savoir si il y a un odre spécifique sur la façon d'écrire son htacces.
car si le met dans un certain ordre ce sont uniquement certaines urls qui marche et correspontent à la requete si je change l'ordre ce sont les autres ainsi de suite jamais toutes qui marche pourquoi ?
#--------------------------------------------------
# Répertoire : /
#--------------------------------------------------

# Activation du module de réécriture d'URL 
#RewriteBase /
Options +FollowSymLinks
Options -MultiViews
RewriteEngine On

RewriteCond %{HTTP_HOST} ^www\.digital.fr$
RewriteRule ^(.*) http://digital.fr/$1  [QSA,L,R=301]


# -- actu+ région + loisir
RewriteRule ^actu/([A-Za-z0-9_-]+)/([A-Za-z0-9_-]+).html$ list.php?region=$1&loisir=$2

# -- actu+ région + ville
RewriteRule ^actu/([A-Za-z0-9_-]+)/([A-Za-z0-9_-]+).html$ list.php?region=$1&ville=$2

# -- actu+ région + departement
RewriteRule ^actu/([A-Za-z0-9_-]+)/actu-du-([A-Za-z0-9_-]+).html$ list.php?region=$1&departement=$2
# -- actu+ région -------------------
RewriteRule ^actu/([A-Za-z0-9_-]+).html$ list.php?region=$1

RewriteRule ^actu.html list.php
#RewriteRule ^([A-Za-z0-9_-]+).html$ $1.php


Par exemple uniquement la première marche ... je ne comprends pas ou se situe le problème
Merci à vous

PS: je ne sais pas si cela peut aider mes voici mes requetes:
$sql = "SELECT * FROM `loisirs`  JOIN `regions` ON `regions`.`region_id` = `loisirs`.`id_region` WHERE `loisirs`.`date_fin_sortie` > NOW() AND `loisirs`.`valide` = 1";
	

  	$sql .= !empty($_REQUEST['region']) ? ' AND `regions`.`url` = "'.$_REQUEST['region'].'"' : NULL; // region
    $sql .= !empty($_REQUEST['departement']) ? ' AND `loisirs`.`id_departements` = '.$_REQUEST['departement'] : NULL; // dep
    $sql .= !empty($_REQUEST['loisir']) ? ' AND `loisirs`.`genre_loisir` = "'.$_REQUEST['loisir'].'"' : NULL; // loisir
	


   // Recherche par ville
 	$sql .= !empty($_REQUEST['ville']) ? ' AND `loisirs`.`city` = "'.getRealValue($_REQUEST['ville']).'"' : NULL;
		
 	$sql .= !empty($_REQUEST['manufacturer']) ? ' AND `loisirs`.`manufacturer` = "'.getRealValue($_REQUEST['manufacturer'], 'manufacturer').'"' : NULL;
	
	$req = $bdd->query($sql);
	
	echo $sql;