Мне сказали спросить об ошибке сервера, когда Я спросил на суперпользователе, и это имеет для меня большой смысл, так что вот оно.
Мне нравится вид нет www но меня несколько беспокоят недостатки, такие как общие файлы cookie в корне и во всех поддоменах (не то, чтобы я на самом деле что-то знал о файлах cookie на данный момент, но я хочу быть уверен в будущем).
Я предполагаю, что это могло быть возможно через какую-то вещь типа псевдонима. Но я могу ошибаться, поэтому я спрашиваю.
Итак, чтобы уточнить, возможно ли иметь http://foo.com/ в адресной строке, пока http://www.foo.com/ на самом деле осуществляется доступ?
редактировать: Я планирую принимать гостей Почти FreeSpeech.NET. Сервер - это Apache, и я предполагаю, что ОС - это некоторая разновидность Linux.
Редактировать 2: Так вы действительно понимаете, о чем я? Я ищу вот что: когда кто-то заходит на сайт, http://foo.com/ это то, что они видят в адресной строке, но http://www.foo.com/ это то, к чему осуществляется доступ. Я должен сказать, что ответ Xorlev выглядит наиболее близким, но сработает ли он, учитывая потенциальные проблемы с файлами cookie и что я собираюсь использовать общий IP-хостинг.
Да. В зависимости от конфигурации веб-сервера вам либо нужно ничего не делать (если вы используете виртуальные хосты на основе IP или вообще не используете виртуальные хосты), либо настраивать виртуальный хост на основе имени с помощью директив ServerName и ServerAlias.
В Apache это выглядело бы так:
NameVirtualHost *:80
<VirtualHost *:80>
ServerName foo.com
ServerAlias www.foo.com
# Virtual host document root, logging, other configuration here
</VirtualHost>
Вам также понадобится DNS для обоих foo.com. и www.foo.com. разрешить по тому же адресу.
Я бы прокомментировал, если бы мне было позволено.
Ответ Чарльза правильный. Одна вещь, возможно, вы захотите сделать немного по-другому. Обычно я устанавливаю запись DNS foo.com как запись A для IP, а запись www.foo.com как запись CNAME для foo.com. Поэтому, если ваш IP-адрес изменится, вам не нужно менять оба. Но это маленькая деталь.
Я не думаю, что кто-то из них ответит на это. Ваша основная проблема будет с файлами cookie: если вы установите их на example.com
, браузер отправит их для *.example.com
, включая домены, которые обслуживают статический контент, например images.example.com
или static.example.com
. Тогда ваша проблема заключается в том, что временный кеш, такой как прокси-сервер кеширования или даже браузер, может отказаться кешировать все, что было запрошено с помощью файлов cookie. Это отправляет нагрузку обратно на ваш основной сервер.
Многие рекомендуют www
поддомен, чтобы вы могли обслуживать свои файлы cookie оттуда и не отправлять их обратно для вашего static
поддомен. К сожалению, если вы сделаете это, вы не сможете получить URL без www. Я рекомендую использовать для статического контента совершенно другой домен верхнего уровня:
Основной: example.com
Статический: examplestatic.com
смотреть на twitter.com
Например. У них нет www
и они обслуживают изображения и CSS из twimg.com
.
Вы можете переписать URL, если он включает www.
Что-то вроде:
RewriteEngine On
RewriteCond %{HTTP_HOST} ^www\.NearlyFreeSpeech\.NET [NC]
RewriteCond %{HTTP_HOST} !^$
RewriteRule ^/(.*) http://NearlyFreeSpeech.NET/$1 [L,R=301]
Не совсем уверен, что это сработает из коробки, но должно быть близко.
Независимо от того, какой домен вы выберете - помните, чтобы он был последовательным. На индексацию из поисковых систем влияет ваш выбор.
т.е. Google: http://www.google.com/support/webmasters/bin/answer.py?hl=ru&answer=44231.
На главной странице example.com вы можете отобразить сайт www.example.com внутри iframe, поэтому, пока пользователь переходит на example.com и видит его, cookie будет поступать с www.example.com.
Я не знаю о файлах cookie, но что касается доступа к вашему веб-сайту через http://example.com и http://www.example.com обеспокоен, вам необходимо добавить запись домена A в вашу зону DNS, которая указывает на IP-адрес вашего веб-сервера. Возможно, вам придется добавлять или не добавлять заголовки хостов на свой веб-сайт, чтобы это работало, я не помню, и у меня нет удобного сервера для проверки.
Да, это возможно, и я рекомендую это.
Вероятно, вы захотите добавить постоянное перенаправление, чтобы «example.com/*» перенаправлял на «www.example.com/». Вы не говорите, какой веб-сервер используете, но на любом из них это должно быть достаточно просто.