Похоже, вы задаете два разных вопроса:
Вопрос 1: Как вы перенаправляете на каноническое доменное имя, то есть всегда добавляете "www" в www.example.com?
Ответ: Это зависит от сервера, который вы используете, но на размещенном на IIS сайте (например, .NET) вы бы изменили правила перезаписи web.config сайта.На веб-сайте Apache (например, PHP) вы должны изменить файл .htaccess.Особенности того, как вы пишете эти правила, уже были изложены в других ответах, поэтому я не стану их публиковать.
Вопрос 2: Как вы гарантируете, что пользователь, прошедший аутентификацию для«www.example.com» также аутентифицируется для «example.com»?
Ответ: Большинство токенов аутентификации хранятся в cookie.Если домен этого файла cookie имеет значение «www.example.com», он будет аутентифицироваться только для «www.example.com».Ключ должен установить домен cookie в «.example.com».Обратите внимание на точку перед «примером», но отсутствие префикса «www».Это позволяет cookie пересекать все дочерние домены «example.com», поэтому он также будет работать для «subdomain1.example.com» и т. Д.
EDIT: Я только что понял, что нетЭто пример .net перенаправления на канонический хост с перезаписью URL, так что вот один.Следующее будет вложено в элемент system.webServer вашего файла web.config в корневом каталоге вашего веб-сайта:
<rewrite>
<rules>
<rule name="CanonicalHostName">
<match url="(.*)" />
<conditions>
<add input="{HTTP_HOST}" pattern="^example\.com$" />
</conditions>
<action type="Redirect" url="http://www.example.com/{R:1}" />
</rule>
</rules>
</rewrite>
EDIT2: По адресуКомментарий Чака ниже:
Если у вас есть субдомены, с которыми вы не хотите делиться аутентификацией, то заставьте своих посетителей (www.) Example.com либо всегда использовать www, либо всегда быть без www сПравило перезаписи .htaccess, как правило Swadq / Vyktor (если вы используете Linux), или правило перезаписи web.config, как у меня (если вы используете Windows).Таким образом, у пользователей даже не будет возможности пройти аутентификацию для домена, с которого они перенаправляются.Задайте для своего домена cookie аутентификации www.example.com, если вы используете www, или просто example.com, если вы не используете www.
Это будет работать даже с поддоменами, с которыми вы не хотите делиться аутентификацией.