Можно ли указать поддомены с подстановочными знаками на домен верхнего уровня только через настройки DNS?
Я хочу, чтобы * .mydomain.com был перенаправлен на mydomain.com.
mydomain.com размещен на третьей службе. У меня нет доступа ни к одному из файлов конфигурации apache моего сайта.
Спасибо, Малькольм
На техническом уровне DNS вы можете иметь:
*.example.com. IN CNAME example.com.
Хотя лучшая конфигурация была бы:
$ORIGIN example.com.
@ IN SOA ( ... )
IN A n.n.n.n ; put your server IP here
www IN A n.n.n.n ; and here
* IN CNAME www
Это гарантирует, что люди будут искать SOA
или MX
записи о foo.example.com
не получайте неожиданного ответа.
Однако, если ваш веб-сервер не настроен для ожидания имен хостов с подстановочными знаками, которые люди начинают использовать для указания, они просто получат страницы с ошибками.
Для этого вам понадобится что-то вроде:
<VirtualHost .....>
ServerName wwww.example.com
ServerAlias example.com
ServerAlias *.example.com
</VirtualHost>
и это имеет быть в основном конфиге, а не в .htaccess
файл.
В качестве альтернативы, если намерение состоит в том, чтобы все поддомены с подстановочными знаками оказывались на одном сайте, используйте перенаправление на уровне HTTP, чтобы все URL-адреса в конечном итоге перенаправлялись клиентом на предпочтительный канонический URL-адрес (например, либо www
или без префикса)
Предполагая, что вы можете в обязательном порядке установить подстановочный знак (* .example.com) в DNS в своем домене (если нет, вы можете переместить свой домен, например, в службу freedns).
Служба DNS только переводит домен в IP, я не связан ни с одной службой (http, ftp, smtp), поэтому он не может перенаправить HTTP-запрос с одного домена на другой.
Но вы можете:
Кроме того, большинство популярных / используемых панелей управления (cPanel, DirectAdmin, ...) поддерживают подстановочные знаки, поэтому, возможно, вы можете настроить это самостоятельно.
Если ваш провайдер DNS поддерживает подстановочные знаки CNAME, это должно сработать. Видеть Вопрос 44618