Htaccess редирект без html

Подборка вариантов Redirect 301 — 301-й редирект на все случаи жизни сайта

В посте по тексту ниже рассмотрим поближе варианты различных 301 редиректов… Способы настройки 301 редиректа для администраторов сайтов, это одна из важнейших наук, которой следует уделить время для изучения! чтобы при случае настроек 301, особо не растерять полезный вес сайта… Например, пост будет полезен тем владельцам сайта, которые переносят свой сайт на https , либо вообще решились на кардинальный шаг — перенести свой сайт на новый домен! …а также разные мелкие настройки редиректа, которые здорово выручать в неких жизненных ситуациях. Без лишних слов, к делу:

  • настройка 301 редиректа со старого на новый домен
  • изменить префикс меток и рубрик на работающем сайте
  • простой 301 редирект — перенаправления
  • после переезда на https
  • редирект для хостинга Джино
  • редирект для хостинга Спринтхост
  • редирект с протокола https на http
  • как сделать редирект с с html на без html
  • редирект с .html на без .html (url со слешем в финале)
  • редирект с html на без html (url БЕЗ слеша в финале ссылки)
  • 301 редирект с www на без www
  • 301 редирект с имени без WWW на имя WWW
  • 301 редирект средствами PHP

настройка 301 редиректа со старого на новый домен

Если вы хорошо подумали относительно шага по переносу сайта с одного (старого — old) домена на новый, то помогут эти строки: (как понимаете, все показанные в статье вариации кодов для файла .htaccess)

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

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

Читайте также:  Add javascript to html body

Итак, код, если переносите сайт с домена на домен:

RewriteCond % ^old-site\.ru$ [NC] RewriteRule ^(.*)$ https://www.new-site.ru/$1 [R=301,L]

www в зависимости от вашего варианта использования доменного имени.

изменить префикс меток и рубрик на работающем сайте

выручит такая настройка редиректа:

# Redirect 301 я изменил префикс рубрик и меток RedirectMatch 301 /category/(.*) https://домен.ru/my-cats/$1 RedirectMatch 301 /tag/(.*) https://домен.ru/my-tags/$1 

Как изменить префиксы меток, рубрик описано по указанной ссылке.

чтобы банально выполнить со старой страницы на новую, поможет

простой 301 редирект — перенаправления

# Redirect 301 RewriteEngine on # простой редирект Redirect 301 /avto https://домен.ru/ Redirect 301 /category/bez-rubriki/ https://домен.ru/новое-имя-категории

/category/bez-rubriki/ = пробел = https://домен.ru/

после переезда на https

редирект для хостинга Джино

# для хостинга ДЖИНО - добавим так: если этой строки нет выше RewriteEngine On RewriteEngine On # RewriteCond % !=https # RewriteRule .* https://%% [R=301,L]

редирект для хостинга Спринтхост

# для хостинга Спринтхост RewriteEngine On RewriteCond % !https RewriteRule ^ https://%% [L,R=301,NE]

Кому-то может быть подойдёт такой пример редиректа 301 при переезде с http на https :

RewriteCond % !=on RewriteRule ^(.*)$ https://%/$1 [R=301,L]

если вдруг возникает циклический редирект, попробуйте этакие строки:

RewriteCond % off RewriteCond % !https RewriteRule ^(.*)$ https://%% [L,R=301]

Как перевести сайт на https — сертификат ssl — шифрование

как осуществить переезд сайта с http на https читайте в этом посте Как самостоятельно перевести сайт на https — сертификат ssl — шифрование . А если есть желание заказать переезд у меня, то познакомьтесь с условиями ЗДЕСЬ Переведу Ваш сайт на https — расторопно и качественно .

Однако, как ни крути, но бывают такие случаи, когда требуется съехать с нового протокола https на прежний… http к примеру, в работах с тестовыми сайтами…

редирект с протокола https на http

RewriteCond % =on RewriteRule ^(.*)$ http://%/$1 [R=301,L]

как сделать редирект с с html на без html

Если вы у вас на сайте ссылки имеют в финале, скажем так, .html (устаревший вариант) и вы его теперь решили убрать из урла, то в этом случае при переходе по старой ссылке С .html возникнет проблема — старые ссылки отдадут 404-ую страницу — это ошибка! Например, вы делились в соцсетях статьями, URL которые были с «хвостиком» и теперь, если пользователь решится по ним перейти к вам на сайт, — он не увидит статью, а место нее 404-ю страницу. НЕХОРОШО.

В подобных случаях следует организовать 301 редирект со старых страниц на новые. Решение простое! для всего сайта РАЗОМ поможет прописка всего одной строки (не считая RewriteEngine on ) кода в файл .htaccess — файл расположен в корневой директории.

редирект с .html на без .html (url со слешем в финале)

Добавим в файл .htaccess такие строки:

 RewriteEngine on RewriteRule (.+)\.html?$ https://domain.ru/$1/ [R=301,L]

Замените domain.ru на домен своего сайта.

Читайте также:  Debug python with gdb

Отныне переадресация активна: .html переадресовывает на адрес без .html Напоминаю, редирект со слешем в конце ссылки (смотрите ваши канонические ссылки).

редирект с html на без html (url БЕЗ слеша в финале ссылки)

Ну а если вам нужно организовать редирект со страниц ссылка которых с .html на без .html БЕЗ СЛЕША — то в .htaccess прописываем такую строчку:

RewriteRule (.+)\.html?$ https://domain.ru/$1 [R=301,L]

301 редирект с www на без www

(тот случай, когда главное зеркало — НЕ www)

RewriteCond % ^www\.(.*)$ RewriteRule ^(.*)$ http://%1/$1 [L,R=301]

Источник

FAQ — редиректы в htaccess

Для начала включаем SEF (ЧПУ) в глобальных настройках и Перенаправление URL, далее файл htaccess.txt, который лежит в корне (увидите его когда по FTP зайдете), переименовываем в .htaccess (точка в начале), как раз в нем и будет работать.

Пояснение: 301 редирект ( постоянное перенаправление с одного адреса на другой) используют для склейки url адресов, если страница изменила свой адрес или у одного документа имеется полный дубль по другому адресу.

1. У главной страницы сайта site.ru всегда присутствует полный ее дубль по адресу site.ru/index.php
Используем код для перенаправления:

Код:

Redirect 301 /index.php http://site.ru/

RewriteCond % ^[A-Z]\ /index\.php\ HTTP/
RewriteRule ^index\.php$ http://site.ru/ [R=301,L]

2. Если у вашего сайта несколько имен, но вы хотите, чтобы пользователи всегда видели в адресной строке основное имя сайта, используйте следующие строки сразу после RewriteEngine On:

RewriteCond % !^site.ru$
RewriteRule ^(.*) http://site.ru/$1 [R=301,L]

2.1 Редирект с www на без www

RewriteCond % ^www\.site\.ru$ [NC]
RewriteRule ^(.*)$ http://site.ru/$1 [R=301,L]

2.2 Редирект без www на www

RewriteCond % ^site.ru$ [NC]
RewriteRule ^(.*)$ http://www.site.ru/$1 [R=301,L]

3. 301 редирект на окончание .html (для тех у кого включен этот суффикс), перенаправит со страниц site.ru/article и site.ru/article/ на страницу site.ru/article.html

RewriteCond % (.*/[^/.]+)($|\?)
RewriteRule .* %1.html [R=301,L]
RewriteRule ^(.*)/$ /$1.html [R=301,L]

4. Редирект с .html на без .html, т.е. с site.ru/article.html на site.ru/article (для тех кто сначала включил .html, а потом решил избавиться от него)

RewriteBase /
RewriteRule (.*)\.html$ $1 [R=301,L]

Код:

REDIRECTMATCH 301 (.*)\.html$ http://site.ru$1

5. Редирект для страниц с параметрами, например со страницы site.ru/blog?limitstart=0 на site.ru/blog

RewriteCond % ^limitstart=0
RewriteRule ^blog http://site.ru/blog? [R=301,L]

Редирект с ?limitstart=0 без указания категории:

Код:

RewriteCond % ^limitstart=0$ [NC]
RewriteRule (.*) $1? [R=301,L]

6. И еще допустим поменяли структуру и нужно чтобы все страницы старого раздела перенаправлялись на те же страницы только нового раздела, например site.ru/blog/raznoe/article на site.ru/blog/article

Читайте также:  Html input запрет ввода букв

RewriteRule ^blog/raznoe/(.*)$ http://site.ru/blog/$1 [R=permanent,L]

7. 301 редирект с адреса без слеша на слеш, то есть с site.ru/article на site.ru/article/

8. Редирект со слеша на без слеша в конце, т.е. с site.ru/article/ на site.ru/article

еще вариант как избавиться от завершающего слеша на конце

вариант избавления от слэша для страниц с параметрами, на примере страниц с пагинацией site.ru/categoriya?start=5/

Код:

RewriteCond % ^start=(\d+)/
RewriteRule ^(.*) /$1?start=%1 [R=301,L]

9. Сначала забыли включить SEO в глобальных настройках, а потом включили, как итог — в индексе много документов с /index.php в адресе. Избавиться можно так —

RewriteRule ^index.php/(.*)$ http://mysite.ru/$1 [R=permanent,L]

— по такому же принципу можно избавиться от какой либо вложенности, например редиректить с site.ru/ru/catalog на site.ru/catalog (/ru/ убирается)

10. Запрет доступа для плохих ботов

SetEnvIfNoCase User-Agent «^Baiduspider» bad_bot
SetEnvIfNoCase User-Agent «^MSNBot» bad_bot
SetEnvIfNoCase User-Agent «^Baiduspider» bad_bot
SetEnvIfNoCase User-Agent «^Ezooms» bad_bot
# продолжите список сами, указывайте юзер-агент плохих ботов

Order Allow,Deny
Allow from all
Deny from env=bad_bot

robots.txt отдаёт, на остальное 404 (для юзер агент — Baiduspider и Ezooms )

Код:

RewriteCond % \b(Baiduspider|Ezooms)\b [NC]
RewriteCond % !^/robots\.txt [NC]
RewriteRule .* — [R=404]

11. Редирект без указания домена (удобно при переносе сайта на другой домен)

RewriteCond % ^(.+)$ [NC]
RewriteRule ^oldpage$ http://%1/newpage$1 [R=301,L]

12. Редирект домена на другой домен (переадресация сайта)

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

13. Редирект на любую страницу по ip пользователя или при запросе конкретной страницы (а также по маске имени).
Если у пользователя ip 192.152.37.125, то он будет перенаправлен на страницу user.php:

Код
SetEnvIf REMOTE_ADDR 192.152.37.125 REDIR=»redir»
RewriteCond % redir
RewriteRule ^/$ /user.php

14. 301 редирект с одной страницы на другую

Redirect 301 /old-page /new-page

Круглые скобки () используются для выделения групп символов. В дальнейшем к ним можно обращаться по номеру.
Символ ^ обозначает начало строки.
Символ $ обозначает конец строки.
Символ . обозначает любой символ.
Символ | обозначает альтернативу. Например, выражения «A|B» означают «A или B».
Символ ? ставится после символа (группы), который может как присутствовать, так и отсутствовать.
Символ * ставится после символа (группы), который может отсутствовать или присутствовать неограниченное число раз подряд.
Символ + действует аналогично символу * с той лишь разницей, что предшествующий ему символ обязательно должен присутствовать хотя бы один раз.
Квадратные скобки [] используются для перечисления допустимых символов.
Квадратные скобки [^] используются для перечисления недоступных символов.
Символ \ ставится перед спецсимволами, если они нужны в своем первозданном виде.
Все, что расположено после символа ‘#’, считается комментарием.

Источник

Оцените статью