Visualizzazione dei risultati da 1 a 7 su 7
  1. #1

    problema rewrite - isapi

    Buongiorno!
    Ho effettuato il rewrite di tutto il mio sito web programmato in asp utilizzando ISAPI, e tutto funziona correttamente. Il sito è stato scritto in MVC, quindi tutte le pagine erano del tipo:
    index.asp?pagina=registrati
    index.asp?pagina=contatti
    ...
    e poi la pagina index.asp effettua un server.transfer verso un controller interno che fa vedere la view della pagina.
    Il mio file .htrewrite è quindi del tipo
    RewriteRule ^registrati.html$ index.asp?pagina=registrati [NC,L]

    Ora il problema che sorge è questo... il cliente mi richiede che ci sia un redirect 301 dalla pagina index.asp?pagina=registrati alla pagina registrati.html, per favorire i motori di ricerca nel rilevamento delle mie nuove pagine. Questo perchè, nonostante io abbia aggiornato tutti i link interni al mio sito, ci sono un sacco di inlink da siti esterni che puntano sulle pagine vecchie.
    Io quindi ho fatto un rewrite del tipo
    RewriteRule ^index.asp?pagina=registrati$ registrati.html [NC,R=301,L]
    ma non funziona, me lo ignora completamente, probabilmente perchè la pagina index.asp?pagina=registrati esiste!
    Ho pensato anche di fare un rewrite tramite codice, andandomi a prendere tramite Request.ServerVariables("URL") l'indirizzo della pagina e:
    - nel caso si tratti di registrati.html non compiere nessuna azione
    - nel caso si tratti di index.asp?pagina=registrati fare un response.redirect a registrati.html
    Ma in ogni caso Request.ServerVariables("URL") mi restituisce sempre e comunque index.asp?pagina=registrati, quindi questo sistema non può funzionare.
    Cosa mi consigliate? C'è una soluzione?

  2. #2
    Moderatore di ASP e MS Server L'avatar di Roby_72
    Registrato dal
    Aug 2001
    Messaggi
    19,559
    Prova ad indicarla come prima regola di rewrite nel file .htaccess

    Roby

  3. #3
    Purtroppo ho provato anche così, ma me lo ignora. Funziona solo se index.asp?pagina=registrati non esiste

  4. #4
    no, ho fatto un passetto in più, sono i parametri get nel link di partenza che non gli piacciono...


    RewriteRule ^index.asp?pagina=registrati$ registrati.html [NC,L]


    senza il ?pagina=registrati funziona

  5. #5

    RISOLTO!!!

    codice:
    RewriteCond %{QUERY_STRING} ^([ &]& )*pagina=registrati(&|$) 
    RewriteRule ^index.asp$ registrati.html? [NC,R=301,L]
    Non chiedemi cosa c'è scritto però
    Praticamente prima gli specifichi che parametri get dovrà avere il successivo rewrite rule

  6. #6
    Amministratore L'avatar di Vincent.Zeno
    Registrato dal
    May 2003
    residenza
    Emilia-Romagna (tortellini und cappelletti land!)
    Messaggi
    20,812

    Re: RISOLTO!!!

    Originariamente inviato da diuzza
    codice:
    RewriteCond %{QUERY_STRING} ^([ &]& )*pagina=registrati(&|$) 
    RewriteRule ^index.asp$ registrati.html? [NC,R=301,L]
    Non chiedemi cosa c'è scritto però
    Praticamente prima gli specifichi che parametri get dovrà avere il successivo rewrite rule
    se... spiega, spiega...
    o almeno dicci dove l'hai rubato

  7. #7
    L'ho trovato in un manuale, non ricordo dove. Però se preferite c'è anche la forma più abbreviata e semplice

    codice:
    RewriteCond %{QUERY_STRING} pagina=registrati&ciccio=1&....etc.
    RewriteRule ^index.asp$ registrati.html? [NC,R=301,L]
    poi non capisco se c'è ironia o meno nella tua affermazione, io ho solo trovata una soluzione e l'ho postata nel caso qualcuno si ritrovi con il mio stesso problema. Non ho detto di essermela inventata di sana pianta. Se vi da fastidio la prossima volta me la tengo per me

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.