Я хочу, чтобы пользователи заходили в www.mydomain.com
даже если они приходят через псевдоним mydomain.com
. Это сделано для того, чтобы я мог контролировать файлы cookie на поддоменах, и чтобы Google видел только один домен, а не мешанину URL-адресов.
Как я могу это сделать с помощью Apache?
<VirtualHost ip:80>
ServerName domain.com
RedirectMatch permanent ^(.*)$ http://www.domain.com$1
</VirtualHost>
<VirtualHost ip:80>
ServerName www.domain.com
... usual config
</VirtualHost>
Включите поддержку mod_rewrite, затем создайте файл .htaccess в корневой папке вашего домена со следующим содержимым:
<IfModule mod_rewrite.c>
Options +FollowSymLinks
Options +Indexes
RewriteEngine On
RewriteBase /
RewriteCond %{HTTP_HOST} ^domain\.com$
RewriteRule ^(.*)$ http://www.domain.com/$1 [R=301,L]
</IfModule>
Добавьте это в свой httpd.conf
файл:
Options +FollowSymLinks
RewriteEngine On
RewriteBase /
RewriteCond %{HTTP_HOST} !^www\.mydomain\.com$ [NC]
RewriteRule ^(.*)$ http://www.mydomain.com/$1 [R=301,L]
Если вы действительно хотите, чтобы Google использовал определенный стиль домена (с или без www) затем создайте бесплатный Инструменты Google для веб-мастеров учетной записи, подтвердите право собственности на свой домен (загрузите файл) и установите предпочтительный домен с помощью онлайн-панели управления.
Это так просто, и вам не нужно изменять код на стороне сервера, а также входящие ссылки с или без www будет рассматриваться так же, увеличивая PageRank ваших страниц.
Ссылки могут указывать на ваш сайт с использованием версий URL как с префиксом www, так и без него (например, http://www.example.com и http://example.com). Предпочтительный домен - это версия, которую вы хотите использовать для своего сайта при поиске. полученные результаты.
Как только вы сообщите нам предпочитаемое доменное имя, мы учтем ваши предпочтения при отображении URL-адресов. Может пройти некоторое время, прежде чем вы увидите, что это изменение полностью отразится в нашем индексе.
если ты не укажите предпочтительный домен, мы можем рассматривать версии домена с www и без www как отдельные ссылки на отдельные страницы.
У меня была противоположная проблема: люди переходят на www.domain.com, когда я просто хочу обслуживать напрямую с domain.com:
<VirtualHost *:80>
ServerName domain.com
... usual config
</VirtualHost>
<VirtualHost *:80>
ServerName www.domain.com
ServerAlias sub.domain.com # can also catch some other subdomains
ServerAlias *.domain.com # or all previously unmatched domains
Redirect permanent / http://domain.com/
</VirtualHost>
Как упоминал Грег Хьюгилл, использование Redirect немного проще, чем RedirectMatch, и выполняет ту же работу, см. http://httpd.apache.org/docs/2.0/mod/mod_alias.html#redirect Больше подробностей.