Usando o IIS6, como posso colocar arquivos em uma subpasta, mas servi-los como se estivessem na raiz?
-
09-06-2019 - |
Pergunta
Nosso site ASP.NET 3.5 rodando em IIS 6 tem duas equipes que estão adicionando conteúdo:
- Equipe de desenvolvimento adicionando código.
- Equipe de negócios adicionando páginas web simples.
Por questões de sanidade e organização, gostaríamos que a equipe de negócios adicionasse suas páginas da web a uma subpasta no projeto:
Raiz:para páginas da equipe de desenvolvimento
Contente:para páginas da equipe de negócios
Mas
Gostaríamos que os usuários pudessem navegar até o conteúdo da equipe de negócios sem precisar anexar "Conteúdo" em seus URLs, conforme descrito abaixo:
Raiz:Padrão.aspx (Disponível em:www.oursite.com/default.aspx)
Contente:Pipoca.aspx (Disponível em:www.oursite.com/popcorn.aspx)
Existe uma maneira de criar uma entrada de configuração em uma ferramenta de reescrita ISAPI para cada uma dessas páginas?
Solução
Não tenho como testar isso agora, mas acho que você pode usar o sinalizador -f no RewriteCond para verificar se existe um arquivo em qualquer diretório.
RewriteCond %{REQUEST_FILENAME} -!f
RewriteCond Content/%{REQUEST_FILENAME} -f
RewriteRule (.*) Content/(.*)
Algo assim também pode fazer o que você procura.
Outras dicas
Como as extensões serão ASPX, o ASP.NET atenderá a solicitação...você pode escrever um HttpModule que verifica páginas que geram 404 e, em seguida, verificar também a subpasta.
Se você sabe que todas as páginas com um determinado formato virão dessa pasta, basta reescrever a URL no ASP.NET (em Global.asax ou em um HttpModule).