Lighttpd reescreve subdomínios para subpastas

2

Eu tenho um servidor (em um subdomínio) com o DNS curinga apontando para ele. O servidor está executando o Lighttpd e o PHP.

Eu preciso de solicitações para http://any-subdomain.server.example.com para reescrever para http://server.example.com/site/any-subdomain e ser atendido a partir daí. Tem que ser completamente transparente para o usuário.

Aqui está minha configuração relevante:

$HTTP["host"] =~ "^(.*)\.server\.example\.com$" {
    url.rewrite-once = ( "^(.*)" => "/site/%1/$1" )
}

Parece funcionar, exceto as subpastas, que são redirecionadas para subdomain.server.example.com/site/subdomain/subfolder e, em seguida, para 404.

    
por Skylar Ittner 14.06.2014 / 00:15

2 respostas

0

Encontrei uma maneira melhor de usar reescrevemos. Em vez disso, usei mod_simple_vhost :

simple-vhost.server-root = "/var/www/site/"
simple-vhost.default-host = "myquick.club"
simple-vhost.document-root = "www"

Isto é muito mais simples e fácil do que usar o mod_rewrite neste caso. Foi uma tarefa difícil de encontrar, espero que isso ajude os outros no futuro.

    
por 16.06.2014 / 04:35
0

url.rewrite-once altera o caminho do URL (e o querystring); sua regra de reescrita parece que você está tentando reescrever para uma pasta no seu disco.

Você não pode "reescrever" o host, mas pode manipular dois nomes de host com o mesmo mapeamento de arquivo físico (e backends fastcgi e ...); por exemplo, você pode copiar a configuração server.document-root do outro vhost, ou apenas fazer com que o outro vhost condicional corresponda a ambos os nomes de host.

Se você tiver blocos vhost padrão "catch-all", lembre-se de que para cada opção de configuração o último bloco ativo substitui todos os outros (use a opção -p para ver a ordem interna após a avaliação de += e assim por diante), então comece com o (s) vhost (s) padrão (s).

Apenas para o registro: a configuração "relevante" inclui pelo menos as partes para ambos os vhosts, não apenas o segundo:)

    
por 15.06.2014 / 10:34