Редирект 301 (с WWW и без него) – Вопросы Timeweb Community
- Вопросы
- Маркетплейс
7157
2 ответа
Подскажите пожалуйста по поводу редиректа 301…
Если сайты с WWW и без него работают по отдельности без редиректов. Эти две копии могут «склеится» поисковыми системами, что негативно скажется на поисковой оптимизации. Я слышал, что эта проблема решается хостинг провайдером?
Прошу дать рекомендации по этому поводу.
DNS SEO
Похожие вопросы
vvv123503
Помочь настроить сайт на Joomla после установки SSL
Здравствуйте, нужна помощь в настройке корректной работы сайта после установки ssl.
Ошибки SSL
2 ответа Алёна Карасёва403
Archiv
Подскажите, пожалуйста как избавиться от «Archiv» в Н1 «portfolio-category» и «portfolio-tag»? Я в настройках Yoast SEO все «Archiv» убрала, с метками сработало, с «portfolio-category»…
Администрирование
1 ответ Ефимовских Александр Иванович522
Подскажите как установить денвер на движке вордпрес
Подскажите как установить денвер на движке вордпрес
1 ответВаш баланс 10 ТК
1 ТК = 1 ₽
О том, как заработать и потратить Таймкарму, читайте в этой статье
Чтобы потратить Таймкарму, зарегистрируйтесь на нашем сайте
Зарегистрироваться
С помощью соцсетейЗабыли пароль?
Запомнить меня
У меня нет аккаунта Зарегистрироваться
Инструкции по восстановлению пароля высланы на Ваш адрес электронной почты.
Вернуться ко входу
Пожалуйста, укажите email вашего аккаунта
Вернуться ко входу
Войти в Комьюнити
ВК Yandex Google
Регистрация в Комьюнити
ВК Yandex Google
Восстановление пароля
Редирект домена с www на без www на Apache в Ubuntu 14.04
26 июня, 2015 12:52 пп 5 971 views | Комментариев нетUbuntu, VPS | Amber | Комментировать запись
Когда сайт или приложение запущены на домене, часто возникает необходимость позволить пользователям открывать его при помощи простого домена и поддомена www.
То есть, пользователи должны иметь возможность посетить домен и с префиксом www, и без него (например: example.com или www.example.com), и при этом получить доступ к одному и тому же контенту. Существует множество способов решения этой проблемы. Лучше всего заранее определиться, какой домен вам подходит больше (с префиксом или без), а затем настроить переадресацию второго домена на основной. Такой редирект называется постоянным (Permanent Redirect), или 301. Его настройки содержатся в конфигурациях DNS и веб-сервера.Это руководство покажет, как настроить редирект URL-а с префиксом www на URL без префикса на веб-сервере Apache в системе Ubuntu 14.04 (например, с www.example.com на example.com).
Примечание: Аналогичную статью для CentOS 7 можно найти по этой ссылке. Чтобы настроить такую переадресацию на веб-сервере Nginx в Ubuntu, читайте данную статью.
Требования
Для выполнения инструкций нужны права суперпользователя (sudo или root). Подробнее об этом можно узнать в статье «Начальная настройка сервера Ubuntu 14. 04».
Кроме того, нужно предварительно установить Apache. Полезные статьи по установке и настройке этого веб-сервера можно найти в специальном разделе данного сайта.
Также нужно иметь возможность добавлять DNS-записи.
Настройка DNS-записи
Чтобы настроить редирект с www.example.com на example.com (или наоборот), нужно создать запись для каждого имени.
Откройте панель управления DNS.
Если записи домена ещё не существует, создайте её сейчас. В hostname укажите доменное имя (к примеру, example.com), в поле IP address нужно указать внешний IP-адрес сервера Apache. Некоторые системы создают запись A, которая указывает на заданный IP-адрес, автоматически, а некоторые требуют создавать эти записи вручную.
Затем создайте еще одну запись А, на этот раз для адреса с префиксом www, указав тот же IP-адрес.
Примечание: Такой редирект работает и с записями CNAME, поскольку запись А канонического имени привязана к IP-адресу веб-сервера Apache.
Теперь сервер доступен по двум доменам: с префиксом www и без него. Можно начинать настройку редиректа.
Включение модуля mod_rewrite
Для настройки редиректа 301 в Apache используется модуль mod_rewrite, который позволяет переадресовывать пользователей на любой необходимый домен (в том числе и на домен без префикса www).
Чтобы включить модуль, используйте команду:
sudo a2enmod rewrite
Теперь можно приступать к настройке редиректа Apache.
Включение файла .htaccess
Apache выполняет редиректы при помощи файла .htaccess. Откройте конфигурационный файл Apache для редактирования; в Ubuntu он находится в /etc/apache2/sites-enabled/000-default.conf:
sudo vi /etc/apache2/sites-enabled/000-default.conf
Найдите DocumentRoot сайта и запишите его (по умолчанию это каталог /var/www/html).
Затем добавьте в файл директиву Directory, указав DocumentRoot:
Add to Apache configuration
<Directory /var/www/html>
Options Indexes FollowSymLinks MultiViews
AllowOverride All
Order allow,deny
allow from all
</Directory>
Сохраните и закройте файл. (.*)$ http://%1/$1 [R=301,L]
Сохраните и закройте файл. Изменения немедленно вступят в силу. Обратите внимание: при использовании HTTPS необходимо заменить http в строке RewriteRule на https.
Затем используйте следующую команду curl, чтобы убедиться, что редирект настроен верно (не забудьте указать свой домен):
curl -I http://www.example.com
На экране должен появиться вывод, сообщающий о точке переадресации:
HTTP/1.1 301 Moved Permanently
Date: Fri, 01 May 2015 21:18:33 GMT
Server: Apache/2.4.7 (Ubuntu)
Location: http://example.com/
Content-Type: text/html; charset=iso-8859-1
После этого нужно проверить переадресацию при помощи браузера.
2: Редирект домена без www на домен с www
Чтобы настроить переадресацию пользователей с обычного домена без префикса www на домен с www, добавьте в файл:
.htaccess — non-www to www
RewriteEngine On
RewriteBase /
RewriteCond %{HTTP_HOST} !^www\. (.*)$ http://www.%{HTTP_HOST}/$1 [R=301,L]
Сохраните и закройте файл, после чего изменения будут активированы. При использовании HTTPS не забудьте заменить http в строке RewriteRule на https.
Затем используйте следующую команду curl, чтобы убедиться, что редирект настроен верно (не забудьте указать свой домен):
curl -I http://example.com
На экране появится сообщение, которое показывает, что точкой редиректа является домен с префиксом:
HTTP/1.1 301 Moved Permanently
Date: Fri, 01 May 2015 21:18:33 GMT
Server: Apache/2.4.7 (Ubuntu)
Location: http://www.example.com/
Content-Type: text/html; charset=iso-8859-1
Конечно, после этого необходимо также проверить редирект в браузере.
Заключение
Как видите, настроить редирект на сервере Apache довольно просто. Теперь сайт доступен по двум доменам: с префиксом и без.
Чтобы получить более подробную информацию о mod_rewrite, читайте руководство «Настройка Mod_Rewrite». (.*)$ ./index.php?uri=$1 [NC,L,QSA]
Есть две страницы, которые мне нужно перенаправить на другой домен. В настоящее время я настроил их как переадресацию 302 со следующей строкой:
Redirect 302 /some-url-slug https://example.com/some-new-url-slug
Это работает для перенаправления на новый домен, но проблема в том, что он добавляет параметр uri к перенаправленному URL-адресу, поэтому я получаю что-то вроде:
https://example.com/some-new-url-slug?uri= какой-то URL-слаг
Я думал, что добавление его над правилом перезаписи решит проблему, но это не так. Как я могу опустить это правило, но только для двух конкретных страниц?
- apache
- .htaccess
- перенаправление
- mod-rewrite
- mod-псевдоним
Я думал, что добавление его над правилом перезаписи решит проблему
Директива Обратите внимание, что URL-путь, соответствующий директиве ОБНОВЛЕНИЕ: Я только что понял, что добавление / к URL-адресу загружает исходную страницу. Нужно ли создавать отдельное правило перенаправления для ссылок с косой чертой в конце? 9какой-то-url-slug/?$ https://example.com/some-new-url-slug [QSD,R=302,L] Теперь это соответствует как Redirect
принадлежит mod_alias, остальные директивы принадлежат mod_rewrite. Неважно, где вы разместили директиву Redirect
, она всегда будет обрабатываться через 9какой-то-url-slug$ https://example.com/some-new-url-slug [QSD,R=302,L] RewriteRule
, не начинается с косой черты. Флаг QSD
(отмена строки запроса) гарантирует, что любая строка запроса, которая может присутствовать в исходном запросе, будет отброшена (в противном случае она будет пропущена по умолчанию). some-url-slug
, так и some-url-slug/
и перенаправляет на URL, как и раньше.
Зарегистрируйтесь или войдите в систему
Зарегистрируйтесь с помощью Google Зарегистрироваться через Facebook Зарегистрируйтесь, используя адрес электронной почты и парольОпубликовать как гость
Электронная почтаТребуется, но не отображается
Опубликовать как гость
Электронная почтаТребуется, но не отображается
Нажимая «Опубликовать свой ответ», вы соглашаетесь с нашими условиями обслуживания и подтверждаете, что прочитали и поняли нашу политику конфиденциальности и кодекс поведения.
Перенаправление домена без изменения URL-адреса с примерами
В этой статье мы покажем вам несколько способов перенаправления домена на другой URL-адрес без изменения домена. Хотя это не типичная установка, могут быть случаи, когда это необходимо. Следуйте инструкциям, и мы объясним несколько сценариев и предоставим примеры кодов, которые вы можете использовать для перенаправления домена без изменения домена.
- Перенаправление и сохранение всего после URL-адреса
- Перенаправление домена на определенный URL-адрес
- Перенаправление IP-адреса
Перенаправление и сохранение всего после URL-адреса
При первом варианте все содержимое будет отображаться на одном URL-адресе как вы бы другой. Например, если вы только что изменили свой домен на DomainB.com, но у вас по-прежнему много посетителей, приходящих на DomainA.com, вы можете использовать это, чтобы показать им весь существующий контент, расположенный в новом домене, без необходимости обновить оба сайта. 9(.*) https://DomainB.com/$1 [P]
Если вы используете файловый менеджер в cPanel, убедитесь, что у вас есть возможность показать выбранные скрытые файлы.
Предупреждение: При использовании этого параметра поисковые системы, такие как Google или Bing, будут видеть несколько сайтов с одинаковым содержанием и могут привести к падению рейтинга одного или обоих сайтов. С точки зрения SEO лучше всего вместо этого создать 301 редирект.
Что делает указанное выше перенаправление?
После добавления этой строки в ваш файл .htaccess вы сможете перейти на DomainA.com/YourPage, и он покажет содержимое с DomainB.com/YourPage 9(.*) https://DomainB.com/PathToPageHere [P]
Этот метод можно использовать, если, например, у вас есть внешний блог, такой как blogspot.com, или корзина покупок на etsy.com, которая вы хотите, чтобы люди посещали ваш домен, не размещая там домен полностью. Теперь посетители могут получать доступ к вашему сайту, используя ваш домен, но видеть содержимое внешнего URL-адреса.