Redirecionar WWW para não-WWW sem usar um servidor virtual separado em Cherokee

2

Estou usando o servidor da web Cherokee e desejo redirecionar todas as solicitações para www.domain.com para domain.com sem criar um servidor virtual separado para redirecionar solicitações.

Na seção Host Match , configurei www.domain.com e domain.com como domínios aceitos no modo curinga. Agora, presumo que preciso criar uma regra com o manipulador Redirection com essas configurações:

Type: External
Regular Expression: ^/(.*)$
Substitution: http://domain.com/$1

A pergunta é: que tipo de regra eu seleciono? Eu tentei a regra de redirecionamento com esta configuração: ^www.domain.com/(.*)$

EDIT: RESPOSTA

(Como ServerFault não está me deixando responder a pergunta ainda)

Finalmente descobri. Crie uma regra do tipo Header e escolha o cabeçalho Host . Em seguida, corresponda a essa expressão regular: ^www.domain.com$ . Defina o manipulador para um redirecionamento externo com a expressão regular: ^/(.*)$ e a substituição: http://domain.com/$1 .

Faça um gracioso reinício e você deve estar pronto!

    
por psp 03.07.2011 / 22:49

2 respostas

1

Finalmente descobri. Crie uma regra do tipo Header e escolha o cabeçalho Host . Em seguida, corresponda a essa expressão regular: ^www.domain.com$ . Defina o manipulador para um redirecionamento externo com a expressão regular: ^/(.*)$ e a substituição: http://domain.com/$1 .

Faça um gracioso reinício e você deve estar pronto!

    
por 06.07.2011 / 19:28
1

Eu estava procurando por algo mais, mas notei que outros pesquisadores poderiam usar alguns conselhos.

A MENOS QUE você queira realmente alterar a barra de endereço no navegador (ou seja, de 'www.domain.tld' para 'domain.tld') E desperdiça largura de banda E leve mais tempo para carregar, você deve deixar o cherokee continuar servindo de acordo com a configuração de 'correspondência' que você pode configurar para qualquer host - como 'www' - que você não configurou no serviço de nome de domínio (DNS) como um registro de recurso CNAME (RR ) para o seu domínio nu (domain.tld).

obviamente, é muito menos dispendioso usar DNS para redirecionar os hosts para o domínio simples [ou seja, criar um DNS RR: 'host-name IN CNAME domain.tld.' Note o "." (ponto) depois de '.tld']. mesmo se você estiver em um ambiente de hospedagem restrita e compartilhada usando os servidores de nomes de outra pessoa, eles sempre disponibilizarão a capacidade de configurar RRs 'CNAME' para o seu DNS.

Então, isso nos leva à questão de por que alguém está usando algum host. você pode eliminar a ambigüidade simplesmente tendo todos os seus links indo para domain.tld ao invés de host-name.domain.tld.

se você está preocupado com a otimização do mecanismo de busca (SEO): não seja. motor de busca "bots" começam a partir do 'domain.tld' e DNS. Além disso, eles não consideram uma coisa "boa" quando um servidor oferece uma re-direta. Assim, podar seus links e fazer a coisa certa no DNS e você será muito melhor!

    
por 24.04.2012 / 17:10