Url Rew : pblm de retour à la racine avec dossier virtuel

Nouveau WRInaute
Bonjour et bravo pour le forum, les outils, le site et tout c'est vraiment du super boulot bravo !

Je débute dans l'url rew après installation (et qq galères) mon premier test fonctionne :
avec un lien en dur du type : /mots1-mots2-variable
la règle suivante : RewriteRule /([-a-z0-9]+)-(.*) /index.asp?act=$2
me permet d'obtenir ce que je veux : index.asp?act=variable

Depuis je cherche à faire la même chose en incluant un dossier virtuel :
avec un lien du type : /mots1-mots2/mots3-variable.htm
la règle suivante : RewriteRule ([-a-z0-9]+)/mot3-(.*)\.htm /index.asp?act=$2
me permet d'accéder à ma page : index.asp?act=variable

SAUF QUE ensuite tous les liens, de ma page appellée, prennent comme racine le dossier virtuel et non pas le lien en tant que tel.
Exemple : le lien en dur sur la page appellée est href="page3.htm" et en définitive le lien appelle la page : "www.exemple.com/mots1-mots2/page3.htm" qui biensur n'existe pas puisque l'appel correct devrait être : "www.exemple.com/page3.htm"

C'est peut être une commande à ajouter mais je n'ai malheureusement pas encore trouvé d'explication.:?:
Pouvez vous m'aider svp merci :)
 
Nouveau WRInaute
suite

J'ai lu que c'était un déplacement de dossier et que l'on pouvait y remédier en mettant toute l'adresse du lien : ce qui est assez lourd ou en utilisant la balise <base href=""></base>, mais que je n'ai pu réussir a faire fonctionner (je suis en local : iis6 avec win serv 2003 et isapi url_rew, les pages sont en asp javascript, la base access et requetes sql).

Avez vous une solution à utiliser directement dans le httpd.ini qui serait plus souple ? merci

Quentin
 
WRInaute passionné
1/ <base href="" /> se place entre <head> et </head>
2/ sinon il suffit de renomer tes liens dans tes pages, et c'est tout :
monlien.htm -> ../monlien.htm
 
Nouveau WRInaute
merci

merci jeroen pour ta réponse,

J'en conclu donc que l'on ne peut pas gérer ce "déplacement de dossier" via l'ISAPI de l'url_rew : c'est bien dommage. :cry:

Le fait de réécrire la totalité du lien me gêne un peu parceque les client, pouvant eux mêmes modifier le contenu de leur site, pouront faire des liens interne. Donc en devant mettre l'ensemble du lien cela augmente aussi leur risque d'erreur.

Par conséquent je testerai en la balise <base href="" /> dans le head, en espèrant que ça fonctionne car les sites sont basés sur un même moteur. :)
 
Discussions similaires
Haut