Apache: carga el script según el nombre de host

Apache: carga el script según el nombre de host

No creo que esto sea tan complicado, pero me está costando encontrar la mejor manera de hacerlo.

Tenemos un sitio site.example.comcon 5 páginas debajo. Digamos que esas 5 páginas son site.othersite.com/page1.html, page2.html, page3.html, page4.html, page5.html. Ahora también tenemos otros 5 subdominios lp1.OTHERSITE.com, lp2.othersite.com, lp3.othersite.com, lp4.othersite.com, lp5.othersite.com. Todos estos dominios están alojados en el mismo servidor, bajo la misma raíz de documentos. Ahora, lo que necesitamos que haga Apache es realizar una redirección transparente (es decir, la barra de direcciones no cambia) a los siguientes patrones:

lp1.othersite.com --> site.example.com/page1.html
lp2.othersite.com --> site.example.com/page2.html
lp3.othersite.com --> site.example.com/page3.html
lp4.othersite.com --> site.example.com/page4.html
lp5.othersite.com --> site.example.com/page5.html

¿Es esto posible utilizando únicamente Apache? Si no, ya escribí un script PHP para cargar las páginas site.example.com/page*.html en un iframe basado en el nombre de host entrante, pero no estoy seguro de cómo decirle a Apache que envíe esos 5 lp*. dominios othersite.com a ese script PHP.

Espero estar explicando el proyecto lo suficientemente bien. Básicamente, necesitamos redirigir los subdominios lp* cada uno a una página site.example.com/page*.html diferente sin cambiar la dirección en la barra de direcciones.

Se agradecerían sugerencias y consejos. Todo lo que pude hacer fue que Apache redirigiera esas URL a mi script PHP, pero la barra de direcciones cambió y, como era una redirección, la barra de direcciones también cambió (en cuyo momento el script PHP no funcionó, porque el nombre de host había cambiado)

Respuesta1

Configure un host virtual para cada nombre de host, usando el mismo DocumentRoot, pero use:

DirectoryIndex page1.html

para lp1,

DirectoryIndex page2.html

para lp2, etc. para que esas páginas se utilicen como página predeterminada en lugar de index.html.

Entonces, por ejemplo, http://lp3.othersite.com/servirá page3.html. También le permitirá navegar a http://lp3.othersite.com/page1.htmletc., pero la página predeterminada será la que usted designe mediante la DirectoryIndexdirectiva.

Respuesta2

Tal vez me esté perdiendo algo, pero creo que lo único que pides son hosts virtuales.https://httpd.apache.org/docs/2.2/vhosts/

El host virtual requiere varias entradas DNS configuradas en el mismo servidor web. Apache sirve una página designada según el nombre DNS utilizado. El usuario ve la molestia que escribió a menos que lo redirija.

Respuesta3

Puedes hacer esto con Reescritura de URL. Solo un ejemplo rápido e improvisado (puede que funcione o no):

RewriteCond %{HTTP_HOST} ^lp([0-9]).othersite.com [NC] 
RewriteRule ^(.*)$ page$1.html [NC,QSA] 

Respuesta4

SeguirDocumentación del servidor virtual Apachepara configurar VirtualHostcada FQDN, luego usemod_dirpara configurar DirectoryIndexy para redirigir usomod_reescritura.

Tutorial:

Cómo crear redirecciones temporales y permanentes con Apache y Nginx

información relacionada