¿Cómo eliminar www para todos los hosts en Apache?

¿Cómo eliminar www para todos los hosts en Apache?

Leí SO temas sobre el tema. Sin embargo, sólo se aplican a hosts únicos.

Me gustaría tener una regla uniforme para todos los servidores de dominios actuales y futuros.

Básicamente, quiero eliminar www de todas las solicitudes y dejar solo el nombre de dominio para que sea accesible.

Apache también sirve HTTPS, entonces, ¿cómo aplicar esto a todos?

¡Gracias!

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

María

Respuesta1

Lo que estás describiendo es (aparentemente) imposible de usar mod_rewrite, hasta cierto punto.

Las configuraciones de múltiples "niveles" no se acumulan mod_rewrite, por lo que un conjunto de reglas definido en la configuración del servidor principal no se importará ni se aplicará automáticamente a una solicitud delegada a un archivo <VirtualHost>.

Sin embargo, asumiendo que tienes que asignar el <VirtualHost>en algún momento de todos modos, si no planeas tener otras reglas dentro del <VirtualHost>cuerpo (si están en .htaccessuna <Directory>sección, estaría bien), puedes jugar con el siguiente.

En la configuración principal, tomaremos mirespuesta a esta pregunta relacionaday aplicarlo:

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]

Luego, en cada una de nuestras <VirtualHost>secciones, podemos "importarlo" usando elRewriteOptionsdirectiva:

RewriteEngine On
RewriteOptions inherit

Como alternativa, por supuesto, puede simplemente copiar el conjunto de reglas en cada uno <VirtualHost>en su totalidad, pero esto mantiene el conjunto de reglas relevante en una única ubicación.

Tenga en cuenta que la razón por la que sugiero no tener reglas adicionales <VirtualHost>directamente en este caso es que las reglas heredadas están incluidas.despuéslo que haya definido en el nivel actual de la configuración, que podría tener efectos secundarios no deseados.

información relacionada