Pregunta

He estado buscando en la red y SO y no puedo conseguir alrededor oa través de este problema.

Tenemos un montón de subdominios y algunos servidores dedicados. Un servidor hace deber doble triples, seguimiento de problemas y página de destino. El problema es la página de aterrizaje comodín no te lleva a la página principal virtual correcta veces. He estado buscando en comodines pero parecen especialmente amplia.

Nuestro escenario es el siguiente:

- www.askia.com es el sitio de aterrizaje principal. A (comodín) subdominio no existente siempre debe aterrizar aquí.
 - dev.askia.com es el apoyo y las cuestiones técnicas del sitio. Tiene algunas mod_rewrites para HTTPS. Me tomó un tiempo, pero tengo que trabajar y yo preferiría no romperlo.
 - www.askia.fr es nuestro sitio francés. En vez de llevarlo a www.askia.com que le lleva a la dev.askia.com.
 - www.askia.co.uk que debe tomar a www.askia.com y sale a dev.askia.com

No estoy del todo seguro de dónde debería estar tratando de fijar la solución. ¿Debo hacer algo en el CNAME. En el archivo de configuración VirtualHosts o en el archivo mod_rewrite.

¿Fue útil?

Solución

Trate estas reglas:

RewriteCond %{HTTP_HOST} ^dev\.
RewriteCond %{HTTP_HOST} !^dev\.askia\.com$
RewriteRule ^ http://dev.askia.com%{REQUEST_URI} [L,R=301]

RewriteCond %{HTTP_HOST} !^www\.askia\.com$
RewriteCond %{HTTP_HOST} !^dev\.askia\.com$
RewriteRule ^ http://www.askia.com%{REQUEST_URI} [L,R=301]

La primera regla redirige todas las peticiones a un host a partir de dev. pero no dev.askia.com a www.askia.com. Y la segunda regla redirigir las solicitudes a un host que no sea www.askia.com y dev.askia.com a www.askia.com. Así que cada petición o bien debe ir a dev.askia.com o www.askia.com.

Otros consejos

Cuando Utilización de máquinas virtuales en Apache el primer alojadas aparece siempre será el valor predeterminado para los no partidos.

#default vhost
# any non-matches will land here

<VirtualHost  _default_:80>
ServerName www.askia.com:80
DocumentRoot /path/to/site

ErrorLog /path/ti/sites/logs/error_log

</VirtualHost>


# vhost #2 

<VirtualHost  _dev_Site_:443>
ServerName dev.askia.com:443
DocumentRoot /path/to/dev/site

ErrorLog /path/to/dev/sites/logs/error_log

#ssl details
SSLEngine on
SSLCipherSuite HIGH:MEDIUM
SSLCertificateFile /location/securti.crt
SSLCertificateKeyFile /location/securti.key


#any rewrite rules to apply only to this (default) domain
# force SSL for instance..
RewriteRule .* - [F]
RewriteCond   %{SERVER_PORT}  !^443$
RewriteRule (.*) https://dev.askia.com/
</VirtualHost>

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