Удалите префикс WWW с вашего сайта

Как переполнение стека (и другие веб-сайты) удаляет префикс "www", когда он вводится как часть URL-адреса?

Это перенаправление, переписывание или что-то еще полностью?

Обновление: мне особенно хотелось бы узнать в контексте IIS 6

Ответы

Ответ 1

Увольнение Fiddler, мы можем видеть, что ответы сервер с "Перенос 301 постоянно" и ссылается на /fooobar.com/.... Поскольку StackOverflow размещен на Windows 2k8 IIS7, они сразу же перенаправили его в IIS7.

FYI:

список статусов HTTP

Если вы являетесь разработчиком .NET, вы можете знать "Respose.Redirect", это создает статус перетаскиваемого объекта 302. Поисковые системы, такие как коды статуса в этом случае, лучше, потому что они знают, что в будущем они не должны возвращаться на www.stackoverflow.com.

Ответ 2

В Apache он выглядит так (внутри файла .htaccess):

RewriteEngine On
RewriteCond %{HTTP_HOST} ^www.example.com$ [NC]
RewriteRule ^(.*)$ http://example.com/$1 [R=301,L]

Ответ 3

Легкий способ сделать это - использовать директиву Apache "Переадресация":

<VirtualHost *:80>
    ServerName www.example.com
    Redirect permanent / http://example.com/
</VirtualHost>

<VirtualHost *:80>
    ServerName example.com
    # remainder of server configuration goes here
</VirtualHost>

Директива Redirect автоматически сохраняет все, что указано в / в URL-адресе. Я считаю, что этот метод легче читать и понимать, чем метод Rewrite.

Ответ 4

Вы можете сделать это несколькими способами, используя mod_rewrite и перенаправление - это мой любимый. Что-то вроде этого:

RewriteEngine On
RewriteCond %{HTTP_HOST} ^www.cuenca.co$ [NC]
RewriteRule ^(.*)$ http://cuenca.co/$1 [R=301,L]

Ответ 5

перенаправлять. субдомен "www.stackoverflow.com" просто перенаправляется на "stackoverflow.com".

Ответ 6

Вам потребуется добавленная запись dns по умолчанию, указывающая на ваш веб-сервер.

ping site.com и убедитесь, что ip указывает на веб-сервер, если вам не нужно добавлять запись DNS по умолчанию.

для базовой настройки:

Вам нужно будет добавить заголовки хостов http://www.visualwin.com/host-header/

Создайте 1 сайт с хост-узлом www.site.com

На вкладке "Домашний каталог" установите для него постоянное перенаправление на http://site.com

Создайте 2-й сайт с заголовком узла сайта site.com

Если вы хотите, чтобы www.site.com/file.html перенаправлялся на сайт site.com/file.html, вам понадобится более продвинутая настройка с чем-то вроде ISAPI_Rewrite или использование пользовательских 404 страниц для этого.

Ответ 7

Это еще далеко, но насколько я знаю, это настройка DNS. Я думаю, вам не нужно указывать HOST-адрес (WWW - это имя хоста (или компьютера/кластера...), на котором находится сайт.).

Я думаю, вы можете настроить его для отправки всех запросов на хост по умолчанию.

Не 100% уверен, но проверьте, что возможно с DNS.

Надеюсь, что это поможет или, по крайней мере, поможет вам двигаться в правильном направлении.

Ответ 8

Вы можете сделать то, что mod_rewrite делает для Apache, с сопоставимым URL-переписателем для IIS. Хороший IIRF. Правило:

RewriteCond  %{HTTP_HOST}  ^www\.example\.com$     [I]
RedirectRule ^(.*)$        http://example.com/$1   [R=301]

Вы также можете подстановочить имя хоста так:

RewriteCond  %{HTTP_HOST}  ^(.+)\.example\.com$    [I]
RedirectRule ^(.*)$        http://example.com/$1   [R=301]

IIRF может свободно использоваться.

Ответ 9

Для apache

<VirtualHost *:80>
ServerName yourdomain.tld
ServerAlias www.yourdomain.tld