Как убрать www для всех хостов в Apache?

Как убрать www для всех хостов в Apache?

Я читал темы SO по этому поводу. Однако они применимы только к отдельным хостам.

Я хотел бы иметь единое правило для всех серверов для текущих и будущих доменов.

По сути, я хочу удалить www из всех запросов и оставить доступным только доменное имя.

Apache также обслуживает HTTPS, так как же применить это ко всем?

Спасибо!

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

Мария

решение1

То, что вы описываете, (по-видимому) невозможно при использовании mod_rewrite, в определенной степени.

Конфигурации из нескольких «уровней» не суммируются mod_rewrite, поэтому набор правил, определенный в конфигурации основного сервера, не будет автоматически импортироваться и применяться к запросу, делегированному <VirtualHost>.

Однако, если предположить, что вам в любом случае придется назначить правило <VirtualHost>в какой-то момент, и вы не планируете вводить какие-либо другие правила в <VirtualHost>текст (если они есть в разделе .htaccessили <Directory>, это было бы нормально), вы можете поэкспериментировать со следующим.

В основной конфигурации мы возьмем мойответ на этот связанный вопроси применить его:

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]

Затем в каждом из наших <VirtualHost>разделов мы можем «импортировать» его с помощьюRewriteOptionsдиректива:

RewriteEngine On
RewriteOptions inherit

Конечно, в качестве альтернативы вы можете просто скопировать набор правил для каждого из них <VirtualHost>целиком, но в этом случае соответствующий набор правил будет храниться в одном месте.

Обратите внимание, что причина, по которой я предлагаю не вводить дополнительные правила напрямую <VirtualHost>в этом случае, заключается в том, что унаследованные правила включеныпослевсе, что вы определили на текущем уровне конфигурации, может иметь непреднамеренные побочные эффекты.

Связанный контент