[ASP] url rewrite

Sirio

Nuovo Utente
17 Nov 2011
28
1
1
Ciao a tutti,
chiedo il vostro supporto per capire come è possibile impostare al meglio le regole di rewriteurl per una pagina alla quale possono essere passati zero, uno o N parametri?

Attualmente utilizzo la seguente regola

Codice:
<rule name="rule articoli">
<match url="^articoli/([0-9]+)" />
<action type="Rewrite" url="/articoli.asp?c={R:1}" />
</rule>

però se alla pagina articoli non passo alcun valore mi viene restituito, giustamente, l'errore 404.
La mia necessità è che puntando alla pagina "/articoli", questa di default mi carichi gli articoli dell'anno corrente e di tutte le categorie (caso del passaggio di 0 parametri); al momento con la regola così impostata devo per forza costruire l'url in questo modo "/articoli/0" e personalmente non mi piace più di tanto, preferirei mantenere solo il nome della pagina in questo caso; qual ora invece volessi visualizzare gli articoli di una determinata categoria sarebbe corretto visualizzare il parametro in url "/articoli/34" (caso di 1 parametro).

Attualmente il codice che genera la query è questo:
Codice:
<%
anno = request.QueryString("anno")
If IsNumeric(anno) = False Or anno = "" Then
anno = Year(Date())
Else
anno = anno
End If

cat = request.QueryString("c")
If cat = "" Then
cat = 0
Else
cat = cat
End If 

if cat=0 then
sql = "SELECT stbc_circolari.id AS ID, stbc_circolari.data AS Data, stbc_circolari.titolo AS Titolo, stbc_circolari.testo AS Testo, stbc_circolari.categorie AS Categorie, stbc_circolari.stato AS Stato FROM stbc_circolari WHERE stbc_circolari.aa='" & anno & "' ORDER BY stbc_circolari.data DESC"
else
sql = "SELECT stbc_circolari.ID AS ID, stbc_circolari.data AS Data, stbc_circolari.titolo AS Titolo, stbc_circolari.testo AS Testo, stbc_circolari.categorie AS Categorie, stbc_circolari.stato AS Stato FROM stbc_circolari WHERE (((stbc_circolari.aa)='" & anno & "') AND ((stbc_circolari.categorie) Like '%" & cat & "%')) ORDER BY stbc_circolari.data DESC"
end if
%>

Il passaggio successivo sarà quello di passare anche l'anno e l'url sarà composto in questo modo "/articoli/20xx/34" (caso di N parametri); presumo che la regola dovrà essere scritta più o meno in questo modo

Codice:
<rule name="rule articoli">
<match url="^articoli/([0-9]+)/([0-9]+)" />
<action type="Rewrite" url="/articoli.asp?a={R:1};c={R:2}" />
</rule>

Spero di essere stato abbastanza chiaro nella spiegazione del problema e spero riusciate ad aiutarmi come sempre.
Tornare indietro e continuare a vedere i parametri dell'url con punti e virgole, uguale e punti di domanda...mi fa un po' rabbrividire

Grazie
Sirio
 

Discussioni simili