Содержание
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 timesBefore I used
redirect 301
statement.
Now I’m in a position where I need to use theRewriteRule
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
1You 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.