5 messaggi dal 18 marzo 2002
Salve a tutti

utilizzo un codice su web.config per riscrivere in formato url friendly una query string proveniente da un DB ....
in pratica cliccando su questo link:
www.miodominio.it/Prodotti/ElencoProdotti.asp?IDC=43&item=Campane-Tibetane
mi si trasforma in
www.miodominio.it/Prodotti/Campane-Tibetane-43

il codice che utilizzo su web.config è questo:

<?xml version="1.0" encoding="UTF-8"?>
<configuration>
<system.webServer>
<rewrite>
<rules>

<rule name="ElencoProdotti 1">
<match url="ElencoProdotti.asp(.*)" ignoreCase="true" />
<conditions logicalGrouping="MatchAll">
<add input="{QUERY_STRING}" pattern="^(.*)IDC=([0-9]+)&amp;item=(.*)" ignoreCase="true" />
</conditions>
<action type="Redirect" url="{C:3}-{C:2}" appendQueryString="false" />
</rule>
<rule name="ElencoProdotti 2" stopProcessing="true">
<match url="^(.*)-([0-9]+)" ignoreCase="true" />
<action type="Rewrite" url="ElencoProdotti.asp?IDC={R:2}&amp;item={R:1}" appendQueryString="false" />
</rule>

</rules>
</rewrite>
</system.webServer>
</configuration>

e fin quì tutto funziona regolarmente ..... i problemi nascono quando aggiungo un'altra regola portando il web.config ad essere così:

<?xml version="1.0" encoding="UTF-8"?>
<configuration>
<system.webServer>
<rewrite>
<rules>

<rule name="Prodotti 1">
<match url="Prodotti.asp(.*)" ignoreCase="true" />
<conditions logicalGrouping="MatchAll">
<add input="{QUERY_STRING}" pattern="^(.*)IDM=([0-9]+)&amp;item=(.*)" ignoreCase="true" />
</conditions>
<action type="Redirect" url="{C:3}-{C:2}" appendQueryString="false" />
</rule>
<rule name="Prodotti 2" stopProcessing="true">
<match url="^(.*)-([0-9]+)" ignoreCase="true" />
<action type="Rewrite" url="Prodotti.asp?IDM={R:2}&amp;item={R:1}" appendQueryString="false" />
</rule>

<rule name="ElencoProdotti 1">
<match url="ElencoProdotti.asp(.*)" ignoreCase="true" />
<conditions logicalGrouping="MatchAll">
<add input="{QUERY_STRING}" pattern="^(.*)IDC=([0-9]+)&amp;item=(.*)" ignoreCase="true" />
</conditions>
<action type="Redirect" url="{C:3}-{C:2}" appendQueryString="false" />
</rule>
<rule name="ElencoProdotti 2" stopProcessing="true">
<match url="^(.*)-([0-9]+)" ignoreCase="true" />
<action type="Rewrite" url="ElencoProdotti.asp?IDC={R:2}&amp;item={R:1}" appendQueryString="false" />
</rule>

</rules>
</rewrite>
</system.webServer>
</configuration>

a questo punto il link www.miodominio.it/Prodotti/ElencoProdotti.asp?IDC=43&item=Campane-Tibetane non mi funziona più ... non mi dà errore ma stranamente mi dice che con questa query non trova risultati .... penso di aver trovato il problema, in sostanza il link che passo con la variabile IDC=43 (che sarebbe ID Categoria) non capisco per quale motivo si attiva la prima regola e non la seconda:

<add input="{QUERY_STRING}" pattern="^(.*)IDM=([0-9]+)&amp;item=(.*)" ignoreCase="true" />
<add input="{QUERY_STRING}" pattern="^(.*)IDC=([0-9]+)&amp;item=(.*)" ignoreCase="true" />

sapreste darmi dei suggerimenti ?

Grazie tantissimo
Modificato da peppeweb il 26 settembre 2020 12:48 -
5 messaggi dal 18 marzo 2002
nessuno riesce a darmi una mano ?
256 messaggi dal 30 novembre 2004
Ho dato uno sguardo veloce, però controlla bene che le regole non siano simili, ovvero se entra nella prima poi non verifica anche la seconda, prova ad invertire l'ordine
5 messaggi dal 18 marzo 2002
si, infatti è proprio questo il problema ... se lo inverto funziona questo
<action type="Rewrite" url="ElencoProdotti.asp?IDC={R:2}&amp;item={R:1}" appendQueryString="false" />
e non funziona più
<action type="Rewrite" url="Prodotti.asp?IDM={R:2}&amp;item={R:1}" appendQueryString="false" />
256 messaggi dal 30 novembre 2004
Le devi differenziare, sono uguali.
5 messaggi dal 18 marzo 2002
mi puoi dire cosa devo modificare perchè non ci sto capendo più niente
Modificato da peppeweb il 30 settembre 2020 22:23 -
256 messaggi dal 30 novembre 2004
Prova così mettendo i tuoi valori:
<system.webServer>
<rewrite>
<rules>
<!--<rule name="Esempio">
<match url="^Invites/(.+)$" />
<action type="Rewrite" url="/ChiSiamo.aspx?key={R:1}" appendQueryString="false" />
</rule>-->

<rule name="Blog-Tags">
<match url="^Artigianato-Made-In-Italy/Blog/Search/(.+)$" />
<action type="Rewrite" url="/Blog.aspx?Tags={R:1}" appendQueryString="false" />
</rule>
<rule name="Blog-Categorie">
<match url="^Artigianato-Made-In-Italy/Blog/(.+)$" />
<action type="Rewrite" url="/Blog.aspx?idCategoriaPost={R:1}" appendQueryString="false" />
</rule>
<rule name="Blog">
<match url="^Artigianato-Made-In-Italy/Blog" />
<action type="Rewrite" url="/Blog.aspx" appendQueryString="false" />
</rule>
<rule name="BlogPost">
<match url="^BlogPost/(.+)/(.+)$" />
<action type="Rewrite" url="/BlogPost.aspx?idPost={R:2}" appendQueryString="false" />
</rule>

</rewrite>
</system.webServer>

Torna al forum | Feed RSS

ASPItalia.com non è responsabile per il contenuto dei messaggi presenti su questo servizio, non avendo nessun controllo sui messaggi postati nei propri forum, che rappresentano l'espressione del pensiero degli autori.