Не работает htaccess redirect 301: Почему не работает 301 redirect htaccess? — Хабр Q&A

Content-Encoding:.*gzip.* </IfModule> <ifModule mod_headers.c> <FilesMatch «\.(html|htm)$»> Header set Cache-Control «max-age=43200» </FilesMatch> <FilesMatch «\.(js|css|txt)$»> Header set Cache-Control «max-age=604800» </FilesMatch> <FilesMatch «\.(flv|swf|ico|gif|jpg|jpeg|png)$»> Header set Cache-Control «max-age=2592000» </FilesMatch> <FilesMatch «\.(pl|php|cgi|spl|scgi|fcgi)$»> Header unset Cache-Control </FilesMatch> </IfModule> <ifModule mod_expires.c> ExpiresActive On ExpiresDefault «access plus 5 seconds» ExpiresByType image/x-icon «access plus 2592000 seconds» ExpiresByType image/jpeg «access plus 2592000 seconds» ExpiresByType image/png «access plus 2592000 seconds» ExpiresByType image/gif «access plus 2592000 seconds» ExpiresByType application/x-shockwave-flash «access plus 2592000 seconds» ExpiresByType text/css «access plus 604800 seconds» ExpiresByType text/javascript «access plus 604800 seconds» ExpiresByType application/javascript «access plus 604800 seconds» ExpiresByType application/x-javascript «access plus 604800 seconds» ExpiresByType text/html «access plus 43200 seconds» ExpiresByType application/xhtml+xml «access plus 600 seconds» </ifModule> RewriteEngine On RewriteBase / RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d RewriteRule ^(.
user\/(.*?)$ user.php?norewrite=yes&login=$1 [L,QSA] и так далее…

11

Зарегистрируйтесь или войдите

Регистрация через Google

Регистрация через Facebook

Регистрация через почту

Отправить без регистрации

Почта

Необходима, но никому не показывается

Отправить без регистрации

Почта

Необходима, но никому не показывается

Нажимая на кнопку «Отправить ответ», вы соглашаетесь с нашими пользовательским соглашением, политикой конфиденциальности и политикой о куки

301 или 302 редирект: Какой лучше использовать?

Joshua Hardwick

Глава отдела контента в Ahrefs (проще говоря, я отвечаю за то, чтобы каждый пост в блоге был КРУТЫМ).

Статистика статьи
  • Ежемесячный трафик 55

  • Ссылающиеся веб-сайты 2

Данные из Контент Эксплорер

Показывает, сколько различных веб-сайтов ссылаются на этот контент. Как правило, чем больше сайтов ссылаются на вас, тем выше вы ранжируетесь в Google.

Показывает ежемесячный рассчетный поисковый трафик на эту статью по данным Ahrefs. Фактический поисковый трафик (по данным Google Analytics) обычно в 3–5 раз больше.

Количество ретвитов этой статьи в Twitter.

Поделиться этой статьей

Содержание

    Редиректы — вещь простая. Если вы перемещаете контент на новое место навсегда, используйте 301 редирект. Если перемещение временное, используйте 302 редирект.

    Но вы можете спросить, какая разница? Пользователи же не заметят разницу между 301‑м и 302‑м редиректами. Оба работают одинаково.

    Ответ прост: поисковые системы учитывают 301 и 302 редиректы по-разному. И если выбрать неправильный, то это может создать проблемы для SEO, которые могут оставаться незамеченными месяцами и даже годами.

    В этом посте вы узнаете:

    • Когда использовать 301 и 302 редиректы
    • Как сделать 301 и 302 редиректы
    • Как Google учитывает 301 и 302 редиректы
    • Как исправить«случайные» 302 редиректы (и стоит ли)

    Когда использовать 301 редирект

    • Вы навсегда меняете URL страницы.
    • Вы навсегда переезжаете на новый домен.
    • Вы переходите с HTTP на HTTPS.
    • Вы хотите исправить проблему с дублированным контентом на не-www и www версиях.
    • Вы навсегда склеиваете две или больше страниц или сайтов.
    • Вы навсегда меняете структуру URL на сайте.

    Когда использовать 302 редирект

    Для использования 302 редиректов намного меньше ситуаций, но они есть:

    • Вы хотите перенаправлять пользователей на правильную для них версию сайта (на основе местоположения или языка).
    • Вы хотите провести A/B сплит тест дизайна или функциональности страницы.
    • Вы хотите получить обратную связь о новой странице, не повредив позициям старой.
    • Вы проводите промо кампанию и хотите временно перенаправлять пользователей на страницу с предложением.

    Несомненно, есть и другие примеры, но чаще всего они слишком специфические и требуют индивидуального решения. Как правило, 302 редиректы следует использовать только если вы планируете вернуть старую страницу через короткое время.

    Как настроить редиректы

    Настроить 301 и 302 редиректы можно с помощью нескольких способов, но самый распространённый — отредактировать файл .htaccess. Его можно найти в корневом каталоге сайта.

    Примечание.

    Если в корневом каталоге вашего сайта нет этого файла, то либо ваш сервер работает на Apache, либо у вас просто нет этого файла. Проверить на чём работает ваш сервер можно с помощью этого инструмента. (.*)$ https://newsite.com/$1 [L,R=301,NC]

    Имейте в виду, что старый хостинг должен работать, чтобы редирект сработал. Это может быть затратно. Поэтому обычно лучше делать редирект через DNS. Большинство регистраторов позволяют выбрать между 301 и 302 редиректами. Если вы используете Google Domains, выберите

    Website > Forward domain, затем введите домен и выберите “Permanent redirect” (англ. — Постоянный редирект).

    В нашем полном руководстве по настройке 301 редиректов можно узнать как сделать настройку для многих других ситуаций (например, перенаправление с не-www на www, HTTP на HTTPS).

    Как сделать 302 редирект

    Если вы хотите сделать 302 редирект с одного адреса на другой, добавьте в файл .htaccess следующую строку:

    Redirect 302 /old-page.html /new-page.html
    

    В WordPress это также можно сделать с помощью плагинов RankMath или Redirections:

    Для перенаправления всего сайта используйте следующий код:

    RewriteEngine on
    RewriteCond %{HTTP_HOST} ^oldsite. (.*)$ https://newsite.com/$1 [L,R=302,NC]
    

    Обычно сайты не перенаправляют с помощью 302 редиректа. Почти всегда домены меняют навсегда, поэтому стоит использовать 301 редирект. То же касается и редиректов с HTTP на HTTPS и с версии без www на версию с www (и наоборот).

    Как Google учитывает 301 и 302 редиректы

    Поскольку для конечного пользователя 301 и 302 редиректы работают одинаково, выбор сводится к тому как Google относится к ним. Поэтому нам нужно рассказать о двух вещах:

    1. Индексация
    2. Ссылочные сигналы

    Индексация

    Когда один URL перенаправляется на другой, Google оставляет в индексе только один из них.

    Для 301 редиректов…

    … это будет«новый» URL. Например, если вы сделали 301 редирект со страницы old-page.html на страницу new-page.html, Google проиндексирует new-page.html, а old-page.html удалит из индекса. Потому что 301 редирект говорит Google о том, что перемещение постоянное и нет смысла оставлять в индексе старый URL.

    Иногда люди запутываются в этом, потому что после настройки 301-го редиректа старый URL всё ещё может показываться какое-то время в Google при использовании оператора site:.

    Например, Moz поменял и перенаправил свой домен seomoz.org на moz.com много лет назад, но seomoz.org всё ещё остаётся в Google.

    Причина в том что, как объяснил недавно Патрик, поиск с оператором site: ничего не говорит об индексации URL. Для проверки нужно использовать Инструмент проверки URL или отчёт Покрытие в Поисковой консоли Google.

    Для 302 редиректов…

    … Google обычно оставляет в индексе первоначальный URL. Несмотря на это, Google знает что люди часто путают 302 и постоянные редиректы, поэтому каждый 302 редирект они оценивают отдельно и пытаются определить что именно он значит.

    Вот что сказал Джон Мюллер, сотрудник Google:

    Когда мы обнаруживаем редирект и понимаем что используется 302, мы сначала предполагаем что это временное перенаправление и считаем что вы хотите оставить в индексе первоначальный URL, а не тот на который настроен редирект. […] Несмотря на это, когда 302 похож на постоянный редирект, который вы могли случайно настроить неправильно, мы учитываем его как 301. И вместо первоначального URL мы проиндексируем URL, на который настроен редирект.

    Никто точно не знает как долго должен висеть 302 редирект до того как Google начнёт учитывать его как постоянный. Обычно это длится от нескольких недель до нескольких месяцев. Но также это может занять дни, недели, или месяцы.

    В некоторых обстоятельствах Google даже может сразу воспринять 302 как 301.

    Например, недавно Патрик провёл небольшой эксперимент, в котором настроил 302 редирект с одного сайта на другой. Как только Google просканировал«старый» домен и увидел перенаправление,«старый» домен исчез из результатов поиска, а«новый» появился.

    Если вы не уверены в том, как Google учитывает ваши 302 редиректы, есть быстрый«трюк»:

    Вставьте URL, который вы хотите перенаправить Инструмент проверки URL в поисковой консоли Google. Если он показывает сообщение о том, что«URL не проиндексирован», то скорее всего Google учитывает его как постоянный (301). Если он есть в Google, он учитывает его как временный (302).

    Только перепроверьте дату последнего сканирования. Если последнее сканирование было после того как вы сделали изменения, запросите переиндексирование и вернитесь позже.

    Примечание.

    Исходя из наших наблюдений, Google обычно учитывает 302 редирект как постоянный быстрее, если перенаправление делается на«авторитетную» страницу или сайт. Скорее всего так происходит потому что«новая» страница или сайт уже какое-то время существуют, поэтому шанс того что вы хотите сделать перенаправление постоянным будет выше. 

    Ссылочные сигналы

    3XX редиректы раньше теряли PageRank, но с 2016 года это больше не так.

    30x редиректы больше не теряют PageRank.

    — Gary 鯨理/경리 Illyes (@methode) July 26, 2016

    Теперь, когды вы перенаправляете один URL на другой, ссылочные сигналы консолидируются без потерь. Несмотря на это, часто люди не до конца понимают как это работает и как тип редиректа может повлиять на передачу сигналов.

    Для 301 редиректов …

    … ссылочные сигналы консолидируются«вперёд» на новом URL.

    Например, если на старой странице old-page.html было десять ссылок и вы перенаправляете его (301) на новую страницу new-page.html, все ссылочные сигналы объединяются и переносятся на новую страницу new-page.html. Другими словами, Google должен ранжировать новую страницу new-page.html так, будто у неё есть 10 ссылок.

    Несмотря на этом, не всё так просто. Потому что неправильные редиректы Google учитывает как soft 404 ошибки:

    Это не проблема, если вы перемещаете контент на новый URL без значительных изменений. Но если редирект нерелевантен, как в случае перенаправления старого поста в блоге на главную страницу, ссылки на«старую» страницу не помогут«новой» ранжироваться лучше. Поэтому за лучшее делать редиректы максимально релевантными.

    Если вам интересно как Google учитывает один из 301 редиректов, попробуйте сделать так:

    Перейдите в Поисковая консоль > Ссылки > Внешние ссылки.

    Далее, отфильтруйте отчёт по«Целевой страницу» и вставьте«новый» URL. Например, мы недавно перенаправили старый пост (ahrefs.com/blog/seo-secrets/) с помощью 301 редиректа на главную страницу блога (ahrefs.com/blog/), поэтому мы вставим главную блога и выберем URL из списка.

    Дальше вставьте«старый» URL в Сайт Эксплорер Ahrefs и перейдите в отчёт Ссылающиеся домены (Referring Domains).

    Наконец, в консоли отфильтруйте ссылки по«Сайту» и вставьте ссылающиеся домены из Ahrefs по одному.

    Если вы сделали это для нескольких доменов и не увидели в консоли соответствующий доменов, скорее всего Google учитывает редиректы как soft 404 ошибки и не учитывает ссылки для нового URL.

    Если вы нашли соответствующий домен, перейдите на него чтобы посмотреть сами ссылки. Вы должны увидеть что-то вроде этого:

    Обратите внимание, что колонка«Целевой URL» (Target URL (if different)) показывает«старый» URL. Это говорит нам о том, что Google учитывает ссылки для«нового» URL.

    Для 302 редиректов …

    … ссылочные сигналы консолидируются«обратно» на«старый» URL.

    Например, если вы перенаправили (302) старую страницу old-page.html на новую страницу new-page.html, а у новой страницы new-page.html есть десять ссылок, ссылочные сигналы будут консолидироваться на старой странице old-page.html. Другими словами, Google будет ранжировать старую страницу old-page.html как если бы у неё было 10 ссылок.

    Но не всё так просто. Всё зависит от того как Google учитывает этот 302 редирект.

    Если он учитывает его как временный, ссылочные сигналы действительно консолидируются в обратную сторону. При условии что перенаправляемая страница та же или похожа на«новую» страницу. Если нет, редирект может учитываться как soft 404 ошибка.

    Если он воспримет его как постоянный, ссылочные сигналы будут учитываться для новой страницы.

    Проверить как Google учитывает редирект можно с помощью Инструмента проверки URL. Просто вставьте«старый» URL. Если«Каноническая страница, выбранная Google» показывает«Проверенный URL» (как в случае ниже), то Google учитывает редирект как временный. Если нет, то как постоянный.

    Нужно ли «исправлять» случайные 302 редиректы?

    Допустим вы сделали распространённую ошибку и настроили 302 редиректы вместо постоянных. Нужно ли тратить драгоценное время и менять их на 301 редиректы?

    Ответ зависит от того, как Google учитывает эти редиректы на данный момент.

    Если он разобрался сам и понял что случайные 302 нужно заменить на постоянные, то смена 302 на 301 редирект мало что поменяет. Если он ещё не разобрался, то скорее всего лучше поменять редиректы.

    Чтобы проверить как Google учитывает отдельно взятые URL адреса, можно использовать Инструмент проверки URL в консоли, как мы уже показывали ранее. Тем не менее, если вам нужно поменять много редиректов, это может занять слишком много времени. Быстрее будет сначала сосредоточиться на 302 редиректах, по которым идёт органический трафик. Это явный признак того, что Google рассматривает данный редирект как временный.

    Для этого можно использовать инструмент Аудит Сайта в Ahrefs. Просканируйте сайт и перейдите в отчёт Перенаправления, чтобы посмотреть уведомления о 302 редиректах.

    Если они там есть, нажмите чтобы посмотреть затронутые URL адреса и отсортируйте отчёт по Органическому трафику от большего к меньшему.

    Из-за того что эти цифры — оценка из Сайт Эксплорера Ahrefs, лучше будет перепроверить перенаправленные URL с трафиком в Инструменте проверки URL. Если канонические страницы выбранные пользователем и выбранные Google совпадают, Google учитывает 302 редирект как постоянный. Если не совпадают, перенаправленная страница скорее всего получает органический трафик, потому что она всё ещё находится в индексе и Google учитывает редирект как временный. Если вы поставили его случайно, то это плохо. К счастью, простая замена 302 редиректа на 301 поможет решить эту проблему.

    Заключение

    Редиректы не сложные. Если вы перемещаете контент в новое место навсегда, используйте 301 редирект. Если временно — 302.

    Тем не менее, хотелось бы быть уверенным, что если вы используете неправильный тип редиректа, Google скорее всего разберётся сам что вы имели в виду. Всегда ли он может разобраться сам? Конечно нет. Google не всегда достаточно умён чтобы разобраться самостоятельно, поэтому лучше всегда использовать правильный тип редиректа там где это возможно.

    Остались вопросы? Напишите мне в Твиттер.

    Перевел Дмитрий Попов, владелец Affilimarketer.com

    Перенаправление 301 не работает — вот как это исправить

    Независимо от того, создаете ли вы канонические страницы, меняете URL-адрес страницы на своем веб-сайте или переносите свой веб-сайт с одного домена на другой, использование перенаправления 301 позволяет посетителям беспрепятственно работать с пользователем, сохраняя их соответствующее значение SEO.

    Однако использование переадресации 301 — это огромная задача, особенно если вы перемещаете тысячи страниц. Простая ошибка в вашей конфигурации может привести к ошибкам, которые приведут к снижению органического трафика и разочарованным посетителям, покидающим ваш сайт и никогда больше не возвращающимся.

    Также имейте в виду, что проблемы с переадресацией 301 зависят от множества факторов. Каждый случай уникален, что делает невозможным универсальное решение каждой проблемы.

    Поэтому мы обсудим две возможные причины, по которым 301 редиректы не работают, и как вы можете подойти к ним, чтобы найти лучшее решение для каждой из них.

    Неверное правило перенаправления 301 в файле .htaccess

    Файл .htaccess — это файл конфигурации сервера для веб-серверов Apache, который обычно находится в каталоге /public_html для управления конфигурациями всего сайта. На вашем веб-сайте может быть несколько файлов .htaccess, если вы хотите настроить сервер на уровне каталога.

    Но для этой цели вы должны использовать файл .htaccess для создания правил перенаправления для беспрепятственного перехода посетителей со старого URL-адреса на новый.

    Вот основное правило перенаправления 301:

    RewriteEngine на

    RewriteBase /

    RewriteRule (.*) http://www.example.com/$1 [ R=301,L]

    Это правило перенаправляет посетителей вашего текущего домена на http://www.example.com.

    Это также относится ко всем страницам вашего текущего домена — посетители будут перенаправлены с дочерней страницы (например, /page-1) в текущем домене на http://www.example.com/page-1 при условии, что веб-сайт был успешно перенесен.

    Есть и другие правила, которые вы можете включить в дополнение к этому, но это самое основное правило, используемое для перенаправления 301 на весь сайт в файле htaccess.

    В случае, если правило перезаписи не работает и оно не указывает автоматически на новый домен, вам может потребоваться обратиться к разработчикам и экспертам по этому вопросу.

    Одним из лучших мест для расспросов является Stack Exchange. С высококвалифицированными разработчиками, готовыми ответить на ваши вопросы о файле . htaccess, вы можете ожидать, что найдете возможные решения проблемы, которые вы сможете реализовать.

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

    Но, как упоминалось выше, не все ящики, которые вы найдете, точно такие же, как ваши. Вы можете в конечном итоге опубликовать свою собственную тему, чтобы получить более точные ответы.

    Правила перенаправления на сайте WordPress появляются раньше, чем правила, созданные из cPanel

    WordPress остается одной из самых популярных систем управления контентом из-за множества ресурсов, которые она предоставляет владельцам сайтов.

    В частности, большинство хостинг-провайдеров управляют службами WordPress, которые предлагают функции, специфичные для этой CMS. В этом случае вы можете создать правила перезаписи из панели управления хостингом, которой обычно является cPanel.

    Если вы перенаправляете страницы с того же сайта, есть плагины WordPress, которые вы можете загрузить и активировать бесплатно.

    Для их использования не потребуется знать правила перенаправления — просто введите исходный и целевой URL, и все готово.

    Причины, по которым 301 редирект не работает, гораздо более четко определены среди сайтов WordPress. Одна из основных причин заключается в том, что вы добавили правила перезаписи как в инструменте «Перенаправления» cPanel, так и в своем плагине WordPress.

    Вы можете определить это, просмотрев файл .htaccess и посмотрев, отображаются ли правила перезаписи, созданные вами в WordPress, перед теми, которые вы ввели с помощью cPanel. Отсюда переместите правила перезаписи, созданные с помощью выбранного вами плагина, начиная с # BEGIN WordPress и заканчивая после создания правил с помощью cPanel.

    Если это предложение не решит проблему, вам придется полагаться на комментарии пользователей из Stack Exchange или обратиться в службу поддержки вашего хостинга за возможными решениями.

    Заключение

    Как вы можете видеть выше, большинство приведенных выше решений требуют, чтобы вы обратились к экспертам и более способным людям, которые могут выполнить работу лучше, чем вы.

    Посмотрим правде в глаза: нет ничего плохого в том, чтобы получить помощь за пределами вашей рулевой рубки. И если ошибка перенаправления 301 продолжает появляться, несмотря на усилия по ее исправлению, вероятно, это способ попросить вас позволить кому-то сделать это за вас.

    Другими словами, вы не хотите усугублять проблему с переадресацией, особенно если у вас нет навыков, необходимых для исправления ошибок переадресации 301.

    Почему эта переадресация .htaccess не работает?

    Задавать вопрос

    спросил

    Изменено 6 лет, 3 месяца назад

    Просмотрено 10 тысяч раз

    Часть коллектива AWS

    У меня есть две идентичные версии веб-сайта, обе используют разные экземпляры AWS EC2 (постановка xx. xx.xx.xx и рабочая версия xxx.xxx.xxx.xxx). Я хочу создать перенаправление 301, которое перенаправляет всех пользователей с промежуточного сайта на рабочий сайт, ЕСЛИ они не посещают мой IP-адрес. Я думал, что это относительно простая задача, но последние пару часов я пытался выполнить эту работу, но безрезультатно. Я надеюсь, что кто-то здесь сможет указать мне правильное направление. В настоящее время перенаправление работает для посетителей домашней страницы http://xx.xx.xx.xx, но не работает для других страниц, таких как http://xx.xx.xx.xx/page1 или общедоступного DNS ec2. например http://ec2-xx-xx-xx-xx.us-west-1.compute.amazonaws.com/ Вот весь мой файл .htaccess, перенаправление, которое я добавил, является последним. Любая помощь, которую вы могли бы дать мне, будет высоко оценена! 9(.*)$ http://newsite.com/$1 [L,R=301,NC] Переписать Базу / RewriteCond %{HTTP_HOST} !newsite.com$ [NC] RewriteCond %{REMOTE_ADDR} !=xxx.xxx.xxx.xxx

    • .htaccess
    • перенаправление
    • amazon-ec2
    • http-перенаправление

    2

    Спасибо за вашу помощь, я хотел опубликовать решение, которое я нашел на форуме WordPress здесь: https://wordpress.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *