Parece-me que o que você está tentando fazer é ter um único aplicativo que faça duas coisas totalmente separadas. Em um determinado ponto, haverá sobreposição na base de código e na funcionalidade, mas não conheço seu aplicativo o suficiente para ajudá-lo com isso. Eu tenho 2 soluções possíveis para você:
-
Eu tentaria separar o código relacionado à visualização de seus controladores e modelos se você estivesse indo na direção do MVC. Isso lhe daria uma separação mais clara da lógica de negócios. Uma maneira possível de fazer isso é colocar suas exibições em dois diretórios separados, mas incluir o código de um terceiro diretório compartilhado. Isso fornece uma biblioteca compartilhada que lida com a lógica de back-end ao separar com clareza a lógica de apresentação.
-
Eu não teria medo do cabeçalho do host HTTP. É exigido pelo HTTP / 1.1 e todos os navegadores modernos o usam. Heck, hospedagem virtual é totalmente dependente dele e você seria duramente pressionado para encontrar um administrador do IIS ou Apache que lhe diria para não usar hosts virtuais em produção. A grande desvantagem é claro, se você está fazendo a verificação de cabeçalho no lado do aplicativo, é possível executar algumas declarações if / case bastante feias. A única coisa que uma configuração de proxy reverso faz é procurar por um host e adicionar outro cabeçalho além do host. Então você está apenas adicionando mais cabeçalhos e complexidade à sua arquitetura com o proxy reverso.