Redirecionar www.example.com para example.com com VirtualDocumentRoot

1

Eu tenho o Apache configurado com o VirtualDocumentRoot e ele funciona bem:

UseCanonicalName Off
VirtualDocumentRoot /var/www/%0/app/www

Mas para cada domínio atualmente eu preciso de dois diretórios:

Aqui está minha inscrição

/var/www/example.com/app/www

O outro diretório contém apenas .htaccess com redirecionamento para example.com

/var/www/www.example.com/app/www

A minha pergunta é: existe alguma maneira de redirecionar automaticamente cada domínio www prefixo para o não-www?

    
por PeterM 25.10.2013 / 13:55

2 respostas

0

Ok, é muito fácil adicionar esse tipo de redirecionamento, basta adicionar a regra de reconfiguração em todo o servidor.

Minha configuração final do virtualhost se parece com isso

<VirtualHost *:80>
    UseCanonicalName Off
    VirtualDocumentRoot /var/www/%0/app/www
    RewriteEngine On
    RewriteCond %{HTTP_HOST} ^www\.(.*)$ [NC]
    RewriteRule ^(.*)$ http://%1$1 [R=301,L]
    <Directory /var/www/%0/app/www>
        Options Indexes FollowSymLinks MultiViews
        AllowOverride All
        Order allow,deny
        allow from all
    </Directory>
... other options
    
por 30.10.2013 / 10:51
1

Ok, esta é uma pergunta antiga, mas desde que a encontrei no google, outros podem acabar aqui também e por que não dar a esses futuros visitantes uma solução diferente para o problema? (embora tecnicamente não seja uma resposta à pergunta dos OPs desde que você pediu um redirecionamento, mas acho que isso resolve o problema)

Dependendo do que você quer, você pode:

1) Ter tudo para o domínio ir para o mesmo diretório: example.com www.example.com foo.example.com todos vão para /var/www/example.com/app/www

<VirtualHost *:80>
    ServerName catch.all
    ServerAlias *
    VirtualDocumentRoot /var/www/%-2.0.%-1.0/app/www
</VirtualHost>

2) Tenha uma estrutura de diretórios como / var / www / [domain] / [subdomain] Tanto example.com quanto www.example.com vão para /var/www/example.com/www e shop.example.com será veiculado em /var/www/example.com/shop

<VirtualHost *:80>
    ServerName sub.domain
    ServerAlias *.*.*
    VirtualDocumentRoot /var/www/%-2.0.%-1.0/%-3
</VirtualHost>

<VirtualHost *:80>
    ServerName bare.domain
    ServerAlias *.*
    VirtualDocumentRoot /var/www/%-2.0.%-1.0/www
</VirtualHost>

Observação: o www será atendido pela regra sub.domain. E subdomínios não existentes resultarão em um 404.

    
por 25.08.2014 / 15:33