Redirections sélectives

Nouveau WRInaute
Voilà, je ne sais pas par quel bout prendre la chose:

J'ai mon domaine www.domaine.xx et je voudrais que quand les surfeurs tape un répertoire, www.domaine.xx/le_joli_repertoire_plein ... outes_nues :roll: :oops:

Plus sérieusement www.domaine.xx/repertoire1/ ils soient directement redirigé sur une page php à la racine:

Le but c'est que le nom du répertoire soit comparer a un champ de Base Données et que si il existe dedans, alors la redirection et possible et le lien serai qque chose genre www.domaine.xx/fiche.php?id=x ou x et la valeur associée dans la BD, et si non, soit le répertoire existe et on y entre, soit comme d'hab. page d'erreur.

le .htaccess me permettrai de faire un truc du genre? ou je ferai mieu de poster sur un forum PHP?

Merci d'avance

PS comment on fait quand on inscrit "réponse acceptée" sur une .. bonne réponse?
 
WRInaute impliqué
Pour cela, il te faut mélanger le mod_rewite et un script php, car le mod_rewrite ne peut pas faire de requete SQL. Donc:
Tu fais une règle de la sorte:
RewriteRule ^([^/]+)/(.*)$ /index.php?rep=$1&file=$2
Ce qui te renvoi sur ta page index.php avec:
la variable $_GET['rep'] comme répertoire de base (ton x dans l´exemple)
et $file pouvant etre un fichier ou en tout cas la fin de l´URI.

Après pour le reste, à savoir la correspondance avec la base de donnée, tu dois faire uns script php du style:
$req= mysql_query(requete sql ...SELECT .... WHERE champ=$1)
if(mysql_num_fields)
{
}...
else{
}
 
Nouveau WRInaute
Si j'ai bien compris
si le répertoire n'est pas dans la base alors je fais une redirection php type
location: $1 ?
Je ne risque pas de créer une boucle?
 
WRInaute impliqué
$1 est une variable apache...
donc ce sera autre chose. Mais en gros c´est ça.
TU fais une boucle infinie si tu redirige sur un fichier de type rep/...
Il faut soit que tes fichiers soient à la racine, soit que tu indique dans l´URL que celle ci est valide, par exemple avec une variable dans la query string, puis une condition avant la RewriteRule:
RewriteCond %{QUERY_STRING} !lavaleursiURLok
RewriteRule...
 
Nouveau WRInaute
Super Merci!
J'ai pas encore eu le temps de tester, mais grace à ta réponse je pense que ça va être parfait et surtout c'est pleins de principes de base qui font m'aider par la suite.
 
Discussions similaires
Haut