232 messaggi dal 03 dicembre 2001
www.fuossbook.it
Ciao a tutti,
su Aruba ho uno spazio windows da molti anni, in cui ho delle cartelle con migliaia anzi ora milioni di pagine create negli anni.
Le pagine richiamano informazioni da un db.
le pagine hanno tutte all'interno un include che richiamano un unico file.
Aruba mi scrive che i file ora sono troppi e causa problemi con il loro file system e quindi devo dividerli in sotto cartelle o spostarli,
Ovviamente questo diventa complicato sia ora che ho tutto fatto da anni, sia per l'indicizzazione dei file da parte dei motori di ricerca che hanno già memorizzato tutto.
vorrei quindi usare se fosse possibile qualcosa come avevo letto in asp.net
ovvero creare una sorta di controller che legge il nome dei file e richiama un altro file anche se l'url appare sempre lo stesso
quindi per esempio adesso io ho miosito.it/cartella1/paginatest.asp
vorrei cancellare tutti i file direttamente è inutile che li sposto , avrei problemi con gli spider e magari in futuro altri problemi con aruba
il server leggere l'indirizzo e richiama miapaginareale.asp anche asp.net
la cosa importante e che l'url vecchia appari sempre uguale
credo di aver capito che si potrebbe fare con filtri isapi o un file htaccess che però su hosting condiviso windows non funziona.
Avete qualche suggerimento da darmi su come effettuare le modifiche al sito?
Grazie

***************************
webmaster di:
hydrasail.blogspot.it
canzonivasco.ciucciatiilcalzino.it
***************************
10.246 messaggi dal 09 febbraio 2002
Contributi
Ciao,


vorrei quindi usare se fosse possibile qualcosa come avevo letto in asp.net

Ok, considera che puoi farlo anche senza ASP.NET perché IIS ha una funzionalità chiamata "Url rewriting" che puoi usare anche in ASP Classico. L'Url rewriting ti permette, per esempio, di avere tanti URL (milioni) che rimappano su un'unica pagina .asp che andrà a servire del contenuto diverso in base all'URL con cui era stata chiamata.

Leggi qui attentamente, perché un altro utente è riuscito a risolvere il problema. Ha solo dovuto chiedere ad Aruba di abilitargli l'URL rewriting, perché è necessario che sia installato come modulo di IIS.

http://forum.aspitalia.com/forum/post/410831/Url-Rewriting.aspx

All'interno di quella discussione ho anche linkato ad un'altra soluzione per realizzare la stessa cosa.

ciao,
Moreno

Enjoy learning and just keep making
232 messaggi dal 03 dicembre 2001
www.fuossbook.it
Ciao Moreno,
grazie per avermi risposto.
ma forse sono stato io a non spiegare bene quale soluzione vorrei
Mi sembra di capire che una volta abilitato il componente su aruba
il web.config prenda dei valori da query e li trasformo in url di un file che ovviamente ho sul server
quello che io vorrei fare è questo
attualmente ho già un milione di file in determinate cartelle
io questi file li vorrei cancellare e lasciarne solo uno (pageMain.asp) che è quello attualmente incluso in tutti i file

quando il visitatore cerca il mio vecchio file /cartella/test1080.asp (quindi non più presente)
vorrei che in effetti non si facesse nessun redirect ad un nuovo file
ma che l'url rimanga lo stesso /cartella/test1080.asp, ovviamente andrebbe in errore perche il file non è presente quindi a questo punto si dovrebbe invocare il mio file pageMain.asp nel quale poi io leggo l'url test1080.asp e da qui riesco a tirare fuori i dati dal db.
il mio problema non è tirare fuori i dati dal db
ma creare questo filtro (non so come chiamarlo) che mostri agli spider e agli utente l'url della pagina (inesistente) /cartella/test1080.asp e il contenuto di pageMain.asp.
Mi é sembrato di capire che l'esempio postato faccia invece un redirect ad un altra pagina.
ovviamente non so se si puo fare quello che chiedo.
quindi sto cercando delle soluzioni
spero di essere stato più chiaro
Grazie

***************************
webmaster di:
hydrasail.blogspot.it
canzonivasco.ciucciatiilcalzino.it
***************************
232 messaggi dal 03 dicembre 2001
www.fuossbook.it
Un'altra idea che avevo se si dovesse fare per forza un redirect , ma non so se si puo fare ne come
intercettare l'errore della pagina non trovata
per esempio /miacartella/prodotto30212.asp
fare a questo punto un redirct a /miacontroller/prodotto30212 (che pero fisicamente non esiste)
quindi poi usare .net
creando un controllo, questo per avere sul server una sola pagina e non più un milione
nel controller vorrei prendere quindi prodotto30212 e usarlo per tirare fuori i dati dal db, cosa che faccio ora nella paginaMain inclusa in tutti i file

***************************
webmaster di:
hydrasail.blogspot.it
canzonivasco.ciucciatiilcalzino.it
***************************
10.246 messaggi dal 09 febbraio 2002
Contributi
Ciao,


ma forse sono stato io a non spiegare bene quale soluzione vorrei

No no, ti eri spiegato già benissimo e ti confermo che la soluzione al tuo problema è nel modulo di URL Rewriting di IIS.


ma creare questo filtro (non so come chiamarlo)

Si chiama URL Rewriting. Una persona arriva sul tuo sito e nella barra degli indirizzi del suo browser legge /cartella/test1080.asp. Il file test1080.asp non deve esistere fisicamente sul disco perché, grazie all'URL Rewriting, la richiesta è stata gestita dal tuo file pageMain.asp.
Non è un redirect. L'utente continua a vedere /cartella/test1080.asp come se test1080.asp esistesse veramente sul disco.

Passo 1: chiedi ad Aruba di abilitarti il modulo di URL Rewriting di IIS.
Passo 2: Crea il file web.config (se non esiste già) nella root dell'applicazione e mettici dentro questo (non ti garantisco che sia esatto al primo colpo anche perché non abbiamo ancora parlato di alcuni dettagli):
<?xml version="1.0"?>
<configuration>
<system.webServer>
  <rewrite>
    <rules>
      <rule name="RewriteUrls" stopProcessing="true">
        <match url="^(.+)\.asp$" />
        <conditions>
          <add input="{REQUEST_FILENAME}" matchType="IsFile" negate="true" />
          <add input="{REQUEST_FILENAME}" matchType="IsDirectory" negate="true" />
        </conditions>
        <action type="Rewrite" url="pageMain.asp?Dati={R:1}" />
      </rule>
    </rules>
  </rewrite>
</system.webServer>
</configuration>


La tua pagina pageMain.asp comincerà a ricevere tutte le richieste rivolte ad altri percorsi che terminano con l'estensione .asp
Da pageMain.asp, fai un Request.QueryString("Dati") per capire con quale URL è stata invocata la pagina, e agire di conseguenza (es. estrarre dal DB i dati di quel contenuto).

ciao,
Moreno
Modificato da BrightSoul il 19 giugno 2017 19.22 -

Enjoy learning and just keep making
232 messaggi dal 03 dicembre 2001
www.fuossbook.it
Ciao e grazie Moreno,
aruba mi ha riposto

il dominio numero-telefono.it risulta attivo con servizio di Hosting Windows, su macchina Windows Server 2012, l'utente può quindi da subito fruire delle funzionalità di Url Rewrite, gestibili:

1. sia tramite web.config
L'utente deve provvedere a scrivere apposito codice per l'url rewrite

2. installare sulla propria postazione IIS 7 Manager

collegarsi al webserver remoto e gestire il modulo URL Rewrite.

quindi procedo con la prima parte utilizzando il tuo web.config
poi vi aggiorno
Grazie

***************************
webmaster di:
hydrasail.blogspot.it
canzonivasco.ciucciatiilcalzino.it
***************************
232 messaggi dal 03 dicembre 2001
www.fuossbook.it
Ciao a tutti, ciao Moreno.
Ho caricato il file web.config sul server
Mi funziona quando non trova il file che interrogo (ancora non ho cancellato i vecchi file); presuppongo che funzioni cosi, e per me va bene dato che devo eliminare tutti i file

Volevo chiedere
pageMain.asp?Dati={R:1}
in questo modo passo i valori alla pagina,
quindi se la mia pagina si chiama carote.asp io avrò pageMain.asp?Dati=carote
Sarebbe possibile passare anche altri parametri tipo da questa url
fuossbook.it/ lombardia / milano / duomo.asp
ottenere
pageMain.asp?regione=lombardia&comune=milano&luogo=duomo
in questo momento ho fatto uno split sul request di dati, lo chiedo giusto per capire come gestire al meglio quello che mi hai scritto.
Grazie

***************************
webmaster di:
hydrasail.blogspot.it
canzonivasco.ciucciatiilcalzino.it
***************************
10.246 messaggi dal 09 febbraio 2002
Contributi
Ciao,

in questo momento ho fatto uno split

Va bene, non è una soluzione malvagia.


Sarebbe possibile passare anche altri parametri tipo da questa url
fuossbook.it/ lombardia / milano / duomo.asp

Certo, ti basta aggiungere una nuova regola di URL rewriting. Fai degli esperimenti in locale prima di pubblicarla su Aruba.

<rule name="AltraRegolaDiRewriting" stopProcessing="true">
        <match url="^(.+)/(.+)/(.+)\.asp$" />
        <conditions>
          <add input="{REQUEST_FILENAME}" matchType="IsFile" negate="true" />
          <add input="{REQUEST_FILENAME}" matchType="IsDirectory" negate="true" />
        </conditions>
        <action type="Rewrite" url="pageMain.asp?Regione={R:1}&Comune={R:2}&Luogo={R:3}" />
      </rule>


ciao,
Moreno

Enjoy learning and just keep making

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.