Pregunta

Alojo un sitio web en DiscountASP.NET y tienen la opción de agregar un puntero de dominio para un dominio separado utilizando su misma cuenta de hosting. Por lo tanto, si el sitio original es abc.com, puede comprar un puntero de dominio a xyz.com y ambos inicialmente apuntan a la misma ubicación raíz. Usar la raíz para abc.com está bien, pero cuando xyz.com es la dirección, quiero redirigirlo a un subdirectorio separado que contenga el código para xyz.com. ¿Dónde intentaría redirigir xyz.com para hacer referencia al código del subdirectorio en lugar de usar el directorio raíz? Estoy pensando que manejarlo como Global.asax, donde generalmente reside todo el código de enrutamiento, es demasiado tarde, ya que quiero que el archivo Global.asax de cada sitio maneje sus respectivos sitios de forma independiente.

Una publicación en el foro DiscountAsp.Net para ASP clásico discutió la adición de código como el siguiente al documento predeterminado.

Si InStr (UCase (Request.ServerVariables (" SERVER_NAME ")), UCase (" subdominio1.YourHostedDomainName.com ")) > 0 entonces         Response.Redirect (" / subdomain1 ") ElseIf InStr (UCase (Request.ServerVariables (" SERVER_NAME ")), UCase (" subdominio2.YourHostedDomainName.com ")) > 0 entonces         Response.Redirect (" / subdomain2 ") ElseIf InStr (UCase (Request.ServerVariables (" SERVER_NAME ")), UCase (" subdominio3.YourHostedDomainName.com ")) > 0 entonces         Response.Redirect (" /subdomain3/home.asp") Fin Si

ASP.NET MVC es mi primer proyecto web y, por lo que sé, entiendo todos los flujos de enrutamiento a través de RegisterRoutes () y la colección de rutas que se establece en Global.asax. ¿Alguna idea?

¿Fue útil?

Solución

Es necesario que la subcarpeta sea una Aplicación separada (en el panel de control de DiscountAsp.net)

Luego, intente escribir un HttpModule que llame a Response.Redirect para redirigir el navegador a la subcarpeta en el dominio raíz.

Si desea mantener a sus usuarios en el subdominio, no creo que sea posible. Nunca he usado ASP .Net MVC, pero supongo que las rutas están registradas por AppDomain , lo que significa que la carpeta para cada subdominio debería ser su propia Aplicación . No hay forma (AFAIK) de transferir la ejecución a través de AppDomain s ( Server.Transfer no lo hará).

Si me equivoco, y es posible hacerlo sin hacer Aplicación s separada, haga un HttpModule que llame al Server.Transfer en las solicitudes del subdominio (y asegúrese de que los enlaces sean relativos a la carpeta que representa el subdominio; ~ las rutas no funcionarán).

Otros consejos

El administrador de ruta en MVC es asignar las URL a los controladores. Los controladores son código, y la ubicación no importa tanto. No conozco una forma de usar el Enrutamiento para hacer la redirección, que es lo que está buscando. DiscountASP.Net debería tener una forma de apuntar su nuevo dominio a una carpeta diferente, verificaría su panel de control para saber cómo hacerlo.

Si está en IIS 7, es probable que use encabezados de host para dirigirlo por usted. En esta situación (IIS 7 o no), debe tener en cuenta que es probable que esté ejecutando un sitio web en un sitio web. Si su sitio raíz no es asp.net, las cosas probablemente serán más fáciles, sin embargo, si su raíz (abc.com) es un sitio asp.net (parece que no es el caso de su pregunta, pero es buena información). así que te lo diré de todos modos) web.configs será addativo.

- root
|
|- xyz.com
 |
 |- web.config (xyz.com)
|
|- web.config (abc.com)

Tenga en cuenta que el archivo web.config de abc.com se aplicará primero, y luego xyz.com, y pueden generar conflictos y crear problemas molestos. Pero primero debe verificar en su panel de control una manera de apuntar su nuevo dominio a una carpeta diferente. La ejecución de varios sitios web desde una cuenta de alojamiento compartido conlleva un gran conjunto de dolores de cabeza, por lo que le deseo buena suerte.

Parece que intentas ejecutar dos sitios web separados, uno de ellos en un subdominio.

No uso DiscountAsp.Net, pero deberían permitirle configurar un sitio web separado que sirva a su subdominio; póngase en contacto con su apoyo.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top