Utilizzando IIS6, come posso inserire i file in una sottocartella ma farli funzionare come se fossero nella radice?

StackOverflow https://stackoverflow.com/questions/45796

  •  09-06-2019
  •  | 
  •  

Domanda

Il nostro sito Web ASP.NET 3.5 in esecuzione su IIS 6 ha due team che stanno aggiungendo contenuto:

  • Il team di sviluppo aggiunge codice.
  • Team aziendale che aggiunge semplici pagine web.

Per ragioni di integrità e organizzazione, vorremmo che il team aziendale aggiungesse le proprie pagine web a una sottocartella nel progetto:

Radice:per le pagine del team di sviluppo

Contenuto:per le pagine del team aziendale

Ma

Vorremmo che gli utenti fossero in grado di accedere ai contenuti del team aziendale senza dover aggiungere "Contenuto" nei loro URL, come descritto di seguito:

Radice:Predefinito.aspx (Disponibile a:www.nostrosito.com/default.aspx)

Contenuto:Popcorn.aspx (Disponibile a:www.nostrosito.com/popcorn.aspx)

Esiste un modo che possiamo realizzare per creare una voce di configurazione in uno strumento di riscrittura ISAPI per ognuna di queste pagine?

È stato utile?

Soluzione

Non ho modo di testarlo in questo momento, ma penso che tu possa usare il flag -f su RewriteCond per verificare se esiste un file, in entrambe le directory.

RewriteCond %{REQUEST_FILENAME} -!f
RewriteCond Content/%{REQUEST_FILENAME} -f
RewriteRule (.*) Content/(.*)

Qualcosa del genere potrebbe fare anche quello che cerchi.

Altri suggerimenti

Poiché le estensioni saranno ASPX, ASP.NET raccoglierà la richiesta...puoi scrivere un HttpModule che controlla le pagine che producono un 404 e quindi controlla anche la sottocartella.

Se sai che tutte le pagine con un determinato formato proverranno da quella cartella, puoi semplicemente riscrivere l'URL in ASP.NET (in Global.asax o in HttpModule).

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top