Возможный дубликат:
на www или не на www
Рассмотрим веб-сайт по адресу www.example.com
Когда URL-адрес вводится вручную в адресную строку Firefox как example.com
, браузер автоматически перенаправляется на www.example.com
.
Используя Internet Explorer, браузер перенаправляется в поисковую систему по умолчанию с поисковым запросом для example.com
.
Сайты вроде codinghorror.com
или example.net
все автоматически изменяются для перенаправления на их www
адрес.
Есть ли настройка на веб-сервере, чтобы изменить это поведение?
Есть ли здесь другие проблемы?
Как правило, вы настраиваете свой веб-сервер так, чтобы один домен был каноническим, и любые псевдонимы, которые вы хотите, перенаправлялись на него. Если указать, какой веб-сервер, кто-то скоро подскажет, как :)
С Apache вы можете сделать что-то вроде этого:
<VirtualHost *>
#our canonical name
ServerName www.example.com
#other domains we want to respond to
ServerAlias example.com
RewriteEngine on
#if host is specified and not our canonical one, redirect
RewriteCond %{HTTP_HOST} !^www\.example\.com [NC]
RewriteCond %{HTTP_HOST} !^$
RewriteRule ^/(.*) http://www.example.com/$1 [L,R=permanent]
...
</VirtualHost>
Обратите внимание, что вы все равно должны определить записи A или CNAME для всех псевдонимов доменов.
Я бы рекомендовал настроить одно из двух имен как канонический и уникальный способ доступа к вашему веб-сайту, а другое - для перенаправления на него. Не используйте CNAME или перенаправление JavaScript. Используйте перенаправление HTTP.
Лично я перенаправляю с www.example.com на example.com, потому что я против www. Причина довольно проста: тот факт, что вы используете веб-браузер и http уже говорит о том, что вы пытаетесь получить доступ к веб-сайту в этом месте, нет необходимости добавлять дополнительную информацию. Кроме того, hr.example.com может быть веб-сайтом отдела кадров, значит ли это, что в вашей компании есть www-отдел? а если нет, то это должен быть www.hr.example.com, что выглядит довольно плохо.
Посмотрите на ссылку выше. stackoverflow.com не переходит на www.stackoverflow.com. Это две отдельные записи DNS. Взгляните на конфигурацию вашего DNS-хоста и попробуйте добавить запись A для xyz.com, и это должно решить проблему.
Как уже упоминалось, у вас будет две отдельные записи DNS. Если это желательно (например, вам нужен не просто www.example.com), тогда вы хотите, чтобы одно имя было каноническим. Это важно для того, чтобы такие вещи, как файлы cookie, работали так, как вы предполагаете для своих конечных пользователей.
Я не знаю, какой веб-сервер вы используете, но если это Apache, вы будете использовать перезапись URL, как описано на следующей странице:
http://httpd.apache.org/docs/2.0/misc/rewriteguide.html
Найдите в документе "канонические имена хостов".
См. Вопрос о проблеме с переполнением стека: Должен ли я по умолчанию использовать для моего веб-сайта www.foo или нет?