Salut tout le monde, me voilà avec un obstacle.
J'ai donc été chargé de faire l'url rewriting d'un site.
La structure du menu dont je me sers est la suivante(celui-ci est intégré à une page d'index via une fonction d'include):
Code:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15 <% sqlMenu = "SELECT * FROM Univers,Site WHERE Univers.idSite=Site.id AND visible=-1 AND Site.id = " & Application("idSite") & " AND Style=1 ORDER BY ordre" Ouverture sqlMenu,resMenu,0 If not estVide(resMenu) Then do while not resMenu.eof if application("rewrite")=0 then%> <a href="/asp/univers<%=resMenu.fields("style").asp?idU=<%=resMenu.fields("idUniv")%>" class="textemenu2" title="<%=resMenu.Fields("commentaire")%>"><%=resMenu.fields("intUniv")%></a></td> <% else libelle=clean(resMenu.fields("intUniv"))%>'Fonction clean remplaçant les espaces par des tirets déclarée dans un fichier 'fonction.asp <a href="/r<%=resMenu.fields("idUniv")%>/truc-<%=libelle%>-chose.html" class="textmenu2" title="<%=resMenu.fields("commentaire")%>"><%=resMenu.fields("intUniv")%> <% end if %> '(...) '(la suite permet de boucler le menu donc ca n'a pas d'importance)
Voilà donc que je m'explique.
En fait, la requête sql ci dessus permet d'aller chercher dans la base les menus correspondant au style. Donc, par exemple, si style="1" comme ci dessus, cela donnera dans l'url non modifiée:/asp/univers1.asp?IdU=(numéro de l'id correspondant). Et donc, avec la boucle while, cela va continuer jusqu'à qu'on ne trouve plus de données correspondant à style="1".
Si l'application rewrite est différent de 0 (donc égal à 1), on écrit l'url rewriting.
Il faut savoir que cette requête SQL est répétée deux autres fois, pour les univers2 et univers0 (respectivement style="2" et style="0"). Cela nous donnera donc 3 parties dans le menu.
Les menus sans la réécriture fonctionnent parfaitement.
On a aussi un fichier global.asa à la racine du site qui détermine toutes les fonctions Application, dont notre application("rewrite") initialisée dans ce fichier à 1 qui permet d'effectuer l'url rewriting.
Pour l'url rewriting j'ai donc un fichier qui est le suivant: httpd.ini, toujours à la racine du site:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11 [ISAPI_Rewrite] RepeatLimit 32 RewriteRule /httpd(?:\.ini|\.parse\.errors) / [F,I,O] RewriteCond Host: localhost RewriteRule .*\.isrwhlp / [F,I,O] RewriteRule /r(\d+)/([^/]+).html /asp/univers1.asp\?idU=$1 RewriteRule /r(\d+)/([^/]+).html /asp/univers2.asp\?idU=$1 RewriteRule /r(\d+)/([^/]+).html /asp/univers0.asp\?idU=$1 RewriteRule /b(\d+)_u(\d+)/([^/]+).html /asp/indexbien4.asp\?idB=$1&idU=$2 #J'ai donc créé 3 réécritures pour les univers selon qu'il soit1, 2 ou 0.
L'url est donc modifiée dans la barre d'adresse mais l'url rewriting ne fonctionne pas du tout!
J'ai donc logiquement une bon gros message d'erreur "file not found", vu que la page cherche l'adresse réécrite.
J'ai tout essayé, bidouillé n'importe quoi et ça n'a rien changé, alors votre aide serait la bienvenue ^^.
Merci
Partager