• User Newbie

    Isapi Rewrite: come verificare che funziona?

    Ciao a tutti,
    la mia domanda potrà sembrare idiota e a molti verrà da dire "prova a chiamare l'url e vedi se funziona!" ma...
    La questione è questa: venerdi scarico la versione free di Isapi rewrite, la installo su un server win2000 con IIS in cui ci sono svariati siti.
    So che la free funziona solo su uno ma al momento mi serve solo testarla.
    Faccio l'install standard, poi metto un banale httpd.ini nella root di uno dei miei siti con dentro:

     
    [ISAPI_Rewrite]
    RewriteRule /articolo_(.*).asp /articolo.asp\?id=$1 
    
    
    

    da browser chiamo http://miosito.com/articolo_45.asp e la chiamata viene rigirata su http://miosito.com/articolo.asp?id=45 in modo mascherato!
    Fin qui è una meraviglia.
    Oggi riavvio il server e non funziona più un tubo.
    Nel senso che quando chiamo la suddetta pagian mi torna sempre un bel Error 404 e mi chiedo come faccio a capire se il filtro ISAPI sta girando oppure è morto, crashato o cos'altro.
    Mentre scrivo ho poi fatto una verifica: ho scoperto che mi ha installato una consolle "Helicon Manager" non notata prima e da li ho inserito le direttive nell'httpd.conf a livello di intero IIS e non nella root del singolo sito se ho ben capito.
    In questo modo funziona ma... allora a che serve il .ini che i vari help raccomandano di mettere nella root del sito?
    E' una roba per la versione non free?
    Ma allora la free non è vero che va su un solo sito ma su tutto l'IIS senza distinsione di siti?
    :rk01_annegare:
    Grazie a chi mi aiuterà a capirci meglio!


  • User Newbie

    ...scusate, già che ci sono approfitto anche per un'altra domanda: qualcuno può darmi una dritta sulla regEx da usare per trasformare qualsiasi stringa senza "." in una chiamata ad una certa pagina.
    Esempio:
    /pippo.htm rimane /pippo.htm
    /pluto.asp rimane /pluto.asp
    /ciccio diventa /bin/process.asp?cod=ciccio
    /gigio diventa /bin/process.asp?cod=gigio

    Grazie tantissime.


  • User

    Ciao,

    sto iniziando ad usare anch'io il filtro per un lavoro di ottimizzazione.

    Ti rispondo per quello che ho capito io:

    Non saprei dirti perché non funziona.

    La versione lite va su tutto il webserver e quindi prende le regole dall'httpd.conf che trovi nella cartellina in cui è installato il manager.

    Io non ho ancora affrontato il problema, ma se lo usi su un server di produzione dove sono impostati vari domini dovresti poter usare le RewriteCond e condizionare la regola alla presenza nel dominio di una certa stringa.

    Per l'altro problema dovresti poter risolvere con questo trucchetto:

    
    RewriteRule /(.[^\.]*).(.*) $1.$2 
    RewriteRule /(.*) /bin/process.asp?cod=$1 
    
    

    Con la prima riga ti becca tutte le pagine in cui le url sono espresse con un'estensione di qualunque tipo e termina la riscrittura
    Tutto ciò che passa dovrebbe essere senza .estensione e lo riscrive come vuoi tu.

    Ma è un'ipotesi di lavoro.

    Ciao
    dG


  • User Newbie

    Grazie DuccioG,
    ho fatto parechie prove e, alla fine, ho identificato la regola giusta che riporto a beneficio di chi possa avere esigenze simili:

    
    RewriteRule /(.[^\.]+)$ /bin/process.asp\?cod=$1 
    
    

    Ricordo poi che, a ogni modifica del httpd.conf, è conveniente riavviare IIS: ho notato che molte volte le modifiche non vengono prese in considerazione senza il restart di IIS.
    :wink3: