Pergunta

Eu vasculhei a rede e, assim, não consigo contornar ou através desse problema.

Temos um monte de subdomínios e alguns servidores dedicados. Um servidor cumpre o dever duplo como rastreamento de problemas e página de aterrissagem. O problema é que a página de destino do curinga não o leva à página de host virtual correta às vezes. Eu tenho olhado para curingas, mas eles parecem particularmente amplos.

Nosso cenário é o seguinte:

-www.askia.com é o principal local de pouso. Um subdomínio inexistente (curinga) deve sempre pousar aqui.
-dev.askia.com é o site de suporte técnico e problemas. Possui alguns mod_rewrites para https. Demorei um pouco, mas consegui funcionar e prefiro não quebrá -lo.
-www.askia.fr é o nosso site francês. Em vez de levá -lo a www.askia.com Leva você ao dev.askia.com.
-www.askia.co.uk deve levá -lo para www.askia.com Mas vai para dev.askia.com

Não tenho muita certeza de onde deveria estar tentando corrigir a solução. Devo fazer algo no CNAME. No arquivo de configuração do VirtualHosts ou no arquivo mod_rewrite.

Foi útil?

Solução

Experimente estas regras:

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]

A primeira regra redireciona todos os pedidos para um host que começa com dev. mas não dev.askia.com para www.askia.com. E a segunda regra de redirecionar solicitações para um host que não www.askia.com e dev.askia.com para www.askia.com. Portanto, todo pedido deve ir para dev.askia.com ou www.askia.com.

Outras dicas

Ao usar hosts virtuais no Apache, o primeiro hospedado listado sempre será o padrão para não correspondências.

#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 em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top