2009-07-21 19 views
5

Estoy construyendo un sitio donde las empresas podrán inscribirse en su propia cuenta, que debe ubicarse en http://businessname.example.com con el "nombre de empresa" cambiando cada vez.creando subdominios en el registro

Quiero hacer esto en un servidor de Windows (IIS 7) pero no estoy seguro de cómo hacerlo.

+1

más apropiado para serverfault, tal vez? – Joey

+1

no estoy tan seguro ... el modo 'servidor' (iis configuration + scripting) es mucho más problemático que el método 'stack' (reescritura url). entonces, si se elige la reescritura de URL, debería permanecer aquí. – b0x0rz

Respuesta

3

Primero, debe configurar su servidor DNS para resolver * .example.com a la IP de su servidor.

Entonces, usted tiene dos opciones:

  • Cada vez que se crea una cuenta nueva, que se agregan a su huésped a la configuración de IIS, por lo que está unido a un directorio. No estoy seguro de cómo hacer esto programáticamente.
  • Cada vez que se realiza una solicitud al servidor, se comprueba el host y se redirige el cliente al sitio correspondiente al host. Puede ser una redirección explícita (el cliente llega al http://businessname.domain.com/ y se redirige a http://sites.example.com/businessname/) o implícita (el cliente llega al http://businessname.example.com/ e internamente, la aplicación se encuentra en un directorio dedicado a businessname y trata la solicitud.
5

través http://forums.asp.net/t/874598.aspx

Si su proveedor de DNS (. Es decir ISP) tienen la opción de "comodín" podría configurar * .midominio.com -> MyIP

siguiente paso. Opción n.º 1 Cree un script que cree 1 sitios para cada subdominio en IIS Opción n.º 2 Cree un script url_rewrite que reescriba urls para corregir carpetas sobre la marcha.

opción 2 es probablemente lo que está buscando (y es FUERTEMENTE recomendado y preferido a la opción 1).

más información sobre la reescritura de URL en iis7: http://learn.iis.net/page.aspx/460/using-url-rewrite-module/

La URL Módulo Microsoft reescritura para IIS 7.0 proporciona flexibilidad basado en normas motor de reescritura> que se puede utilizar para llevar a cabo un amplio espectro de tareas de manipulación de URL, incluyendo, pero no se limita a:

  • Habilitación de URL fácil de usar y amigable para los motores de búsqueda con aplicaciones web dinámicas;
  • Reescribiendo las URL basadas en encabezados HTTP y variables de servidor;
  • Manejo del contenido del sitio web;
  • Controlar el acceso al contenido del sitio web en función de segmentos de URL o solicitar metadatos.

la url opción de volver a escribir hace que sea fácil tener cientos de miles de empresas, sus nombres se pueden leer desde la base de datos y una reescritura de URL se encargará de las redirecciones. después de eso, puede olvidarse (en su mayor parte) ya que seguirá trabajando para todas las empresas que se registren en el futuro también.

0

Esto implica:

  • Comodín DNS Mapping
  • Uso de la API IIS para añadir nombres de host a un dominio, por ejemplo, businessname.domain.com
  • suplantación Programáticos (como el código necesita un priveledge superior para utilizar la API de IIS que un simple servicio de red

Una vez que programáticamente añadir el nombre de host de la asignación de comodín permite que se resuelva.

la opción de reescritura de URL sería más limpia, pero con el dominio físico, que podría ofrecer acceso FTP y otras cosas, ya que sería un dominio completo.

Andrew

3

G En general, el mejor enfoque para esto (si es posible) es no usar encabezados de host o sitios IIS separados para cada registro. Simplemente dedique una dirección IP a esa aplicación que responda a todas las solicitudes en el Puerto 80 (o al puerto que use) y deje que su aplicación detecte el encabezado del host cuando lo solicite. De esta forma, si tienes 1,000 registros, no terminas con 1,000 "cosas" que necesitan configurarse correctamente en la capa OS/services.

alternativa si lo que desea el código, no está seguro de qué idioma está mirando, pero véase más abajo para C# ...

http://forums.iis.net/t/1151463.aspx