Como remover www para todos os hosts no Apache?

Como remover www para todos os hosts no Apache?

Eu li tópicos SO sobre o assunto. No entanto, eles se aplicam apenas a hosts únicos.

Gostaria de ter uma regra uniforme para todos os servidores dos domínios atuais e futuros.

Basicamente, quero remover www de todas as solicitações e deixar apenas o nome de domínio acessível.

O Apache também serve HTTPS, então como aplicar isso a todos?

Obrigado!

http://www.example.com >> http://example.com
https://www.example.com >> https://example.com

Maria

Responder1

O que você está descrevendo é (aparentemente) impossível de usar mod_rewrite, até certo ponto.

As configurações de vários "níveis" não são empilhadas mod_rewrite, portanto, um conjunto de regras definido na configuração do servidor principal não será automaticamente importado e aplicado a uma solicitação delegada a um <VirtualHost>.

No entanto, supondo que você tenha que atribuir o <VirtualHost>em algum momento de qualquer maneira, se você não planeja ter quaisquer outras regras dentro do <VirtualHost>corpo (se elas estiverem em .htaccessuma <Directory>seção, tudo bem), você pode brincar com o seguindo.

Na configuração principal, pegaremos meuresposta a esta pergunta relacionadae aplique:

RewriteEngine On
RewriteCond %{HTTP_HOST} ^www\.
RewriteCond %{HTTPS}s ^on(s)|off
RewriteCond http%1://%{HTTP_HOST} ^(https?://)(www\.)?(.+)$
RewriteRule ^ %1%3%{REQUEST_URI} [R=301,L]

Então, em cada uma de nossas <VirtualHost>seções, podemos "importá-la" usando oRewriteOptionsdiretiva:

RewriteEngine On
RewriteOptions inherit

Como alternativa, é claro, você poderia simplesmente copiar o conjunto de regras para cada um deles <VirtualHost>em sua totalidade, mas isso manteria o conjunto de regras relevante em um único local.

Observe que a razão pela qual sugiro não ter regras adicionais <VirtualHost>diretamente neste caso é que as regras herdadas estão incluídasdepoistudo o que você definiu no nível atual da configuração, o que pode ter efeitos colaterais indesejados.

informação relacionada