Rewriterule l r 301: Шпаргалка по реализации 301 редиректа — SEO на vc.ru

Содержание

301 редирект сниппеты для .htaccess / likes 33 / блог студии Клондайк!

Для большинства проектов нашей студии приходится использовать SEO редиректы, поскольку движки сайтов не в состояние учесть некоторые моменты, или же требуется действительно исправить существующую ситуацию с урлами.

Как показала практика даже программисты плохо понимают суть работы 301 редиректа, по сему пришлось написать стандартны снипет для .htaccess

Я только вкратце опишу их, поскольку описал каждую строчку кода. Задача которые решает данный сниппет достаточно простые, но они собраны и отдебажены по мере возможности.

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

  • Активация канонических директив
  • Активация рекомендованных директив «Битрикс монитор качества»
  • Установить основное зеркало сайта с www сохраняя протокол http или https
  • Установка основного зеркала сайта без www сохраняя http или https
  • Перенаправление HTTP > HTTPS
  • ПеренаправлениеHTTPS > HTTP
  • Удалить любое количество «/» стоящих рядом; site. (.*)$ tovar-%1 [R=301,L]
    # То сделать перенаправление

    Обратите внимание что используется % а не $

    wordpress — htaccess redirect 301 is working but RewriteRule is not


    Asked


    Modified
    1 year, 4 months ago


    Viewed
    230 times

    Before I used redirect 301 statement.
    Now I’m in a position where I need to use the RewriteRule statement to make use of the flags (redirecting without the query string),
    but for some reason, it’s not working.

    This is my .htaccess file:

    # BEGIN WordPress
    # Директивы (строки) между `BEGIN WordPress` и `END WordPress`
    # созданы автоматически и подлежат изменению только через фильтры WordPress.
    # Сделанные вручную изменения между этими маркерами будут перезаписаны. test/bad-link.*$ "http://localhost:8000" [NC,QSD,L,R=301]
    #this is also not working
    RewriteRule "test/bad-link" "http://localhost:8000" [R=301]
    </IfModule>
    # END WordPress
    
    • wordpress
    • apache
    • .htaccess
    • redirect
    • mod-rewrite






    1

    You have the directives in the wrong order. The mod_rewrite redirects (ie. RewriteRule directives) need to go before the WordPress front-controller rewrites. By placing them after the WordPress directives they are never going to be processed since the request has already been rewritten to the WP front-controller (index.php) and processing stops.

    You should not edit the code inside the # BEGIN WordPress / # END WordPress code block as WordPress itself tries to maintain this code block and your edits can get overwritten.

    You should place your RewriteRule 301 redirect directives before the # BEGIN WordPress comment marker. test/bad-link http://localhost:8000/ [NC,QSD,R=301,L]
    # BEGIN WordPress
    : etc.

    Note that the .*$ at the end of your regex is superfluous.

    NB: Test first with 302 (temporary) redirects to avoid potential caching issues.






    2







    Sign up or log in

    Sign up using Google

    Sign up using Facebook

    Sign up using Email and Password

    Post as a guest

    Email

    Required, but never shown

    Post as a guest


    Email

    Required, but never shown






    apache — В чем разница между [R = 301] и [R = 301, L]?

    спросил

    Изменено
    3 года, 11 месяцев назад

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

    Кто-нибудь может поделиться со мной разницей между [R=301] и [R=301,L] в переадресации 301? Что лучше всего подходит для перенаправления URL-адресов?

    Хотя оба работают отлично, я заметил, что [R=301,L] изменяет URL-адрес на новый URL-адрес, а [R=301] только перенаправляет содержимое.

    Кто-нибудь может поделиться информацией об этом, пожалуйста?

    • apache
    • .htaccess

    Независимо от R=301 там L флаг означает Last и должен быть размещен в правилах, когда вы хотите отметить окончание определенного правила перезаписи.

    Согласно официальный документ:

    Флаг [L] заставляет mod_rewrite прекратить обработку набора правил. В
    В большинстве контекстов это означает, что если правило совпадает, дальнейшие правила не применяются.
    будет обработан. Это соответствует последней команде в Perl или
    команда break в C. Используйте этот флаг, чтобы указать, что текущая
    Правило следует применять немедленно, не рассматривая другие правила.

    2

    R делает редирект и L запрещает применять любые правила ниже этого. Если нет L , то остальные правила будут применяться к новому URL.

    Официальная документация гласит:

    Вы почти всегда будете использовать [R] в сочетании с [L] (то есть использовать [R,L]), потому что сам по себе флаг [R] добавляет http://thishost[:thisport] к URI, но затем передает его следующему правилу в наборе правил, что часто может приводить к появлению предупреждений «Недопустимый URI в запросе».

    Основное различие между флагами [L] и [R=301,L] заключается в том, что флаг R вызывает явное внешнее перенаправление HTTP (есть одно исключение), в то время как без флага R правило также может вызывать только неявное внутреннее перенаправление , в зависимости от фактического правила и запроса.

    Необязательный код состояния просто указывает тип ответа перенаправления. 301 обозначает постоянный редирект:

    1

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

    Зарегистрируйтесь с помощью Google

    Зарегистрироваться через Facebook

    Зарегистрируйтесь, используя электронную почту и пароль

    Опубликовать как гость

    Электронная почта

    Требуется, но не отображается

    Опубликовать как гость

    Электронная почта

    Требуется, но не отображается

    Общие правила перенаправления Htaccess 301 от Linchpin

    1)
    . Htaccess вариант №

    2)
    Общие правила перенаправления 301 Htaccess

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

    Что такое файл Htaccess?

    .htaccess, или файл доступа к гипертексту, представляет собой текстовый файл конфигурации, который управляет каталогом и любыми подкаталогами, расположенными на веб-сервере Apache. Если вы используете план веб-хостинга на базе Linux, ваши веб-ресурсы, скорее всего, будут работать на Apache. Возможно, вы видели файл .htaccess в определенных каталогах, особенно если вы развернули WordPress, Shopify, Craft или любое другое веб-программное обеспечение для управления контентом.

    Файл . htaccess может содержать определенные инструкции для сервера. Этот файл может настроить сервер на запрос пароля для каталога, в котором он находится. Файл .htaccess также можно настроить для автоматического перенаправления пользователей на другой индексный файл или сайт, ограничения или разрешения пользователей на основе IP-адресов и отключения списков каталогов. Возможно, вам никогда не понадобится редактировать файл .htaccess, но если вы это сделаете, вы должны убедиться, что файл называется только «.htaccess» с точкой впереди и без расширения файла .txt или .htm.

    Common 301 Redirect Правила Htaccess

    Перенаправление одной страницы

     Перенаправление 301 /pagename.php http://www.domain.com/pagename.html 

    Перенаправление всего сайта или домена на новый

     Перенаправление 301 / http://www.domain.com/ 

    Перенаправление всего сайта в подпапку

     Перенаправление 301 / http://www.domain.com/subfolder/ 

    Перенаправление подпапки на другой веб-сайт

     Перенаправление 301 /подпапка http://www. (.*)$ http://www.domain.com/$1 [r=301,nc] 9подкаталог/индекс\.php$/путь-к-новому-местоположению/? [L,R=301] 

    Перенаправление сайта на HTTPS с HTTP для устранения дублирования контента

     RewriteEngine on
    RewriteCond %{HTTPS} на
    RewriteRule (.*) https://%{HTTP_HOST}%{REQUEST_URI} 

    Перенаправить сайт с HTTP на HTTPS для устранения дублирующегося контента

     RewriteEngine On
    RewriteCond %{HTTPS} на
    RewriteRule (.*) http://%{HTTP_HOST}%{REQUEST_URI} 

    Удалить index.html или index.php и перенаправить в корень

     RewriteEngine вкл.
    RewriteCond %{THE_REQUEST} /index.php HTTP [NC]
    RewriteRule (.*)index.php$ /$1 [R=301,L] 
     RewriteEngine вкл.
    RewriteCond %{THE_REQUEST} /index.html HTTP [NC]
    RewriteRule (.*)index.html$ /$1 [R=301,L] 

    Перенаправление URL-адресов с параметрами запроса в структуру на основе каталогов с сохранением строки запроса на корневом уровне URL-адреса

    Пример: исходный URL-адрес http://www.

    This entry was posted in Популярное