Редирект без html на с html – Редирект с /page.html на /page через htaccess? — Хабр Q&A

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 %{THE_REQUEST} ^[A-Z]{3,9}\ /index\.php\ HTTP/
RewriteRule ^index\.php$ http://site.ru/ [R=301,L]

 

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

Код

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


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

Код

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


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

Код

RewriteCond %{HTTP_HOST} ^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 %{REQUEST_URI} (.*/[^/.]+)($|\?)
RewriteRule .* %1.html [R=301,L]
RewriteRule ^(.*)/$ /$1.html [R=301,L]


Или

Код

REDIRECTMATCH 301 (.*/[^/.]+)($|\?)$ http://site.ru$1.html

 

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 %{QUERY_STRING} ^limitstart=0
RewriteRule ^blog http://site.ru/blog? [R=301,L]


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

Код:

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


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

Код

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


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

Код

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

 

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

Код

RewriteRule ^(.*)/$ /$1 [R=301,L]


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

Код

RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.+)/$ /$1 [R=301,L]


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

Код:

RewriteCond %{QUERY_STRING} ^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. Запрет доступа для плохих ботов

пример №1

Код:

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

 

пример №2

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

Код:

RewriteCond %{HTTP_USER_AGENT} \b(Baiduspider|Ezooms)\b [NC]
RewriteCond %{REQUEST_URI} !^/robots\.txt [NC]
RewriteRule .* - [R=404]


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

Код

RewriteCond %{HTTP_HOST} ^(.+)$ [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} redir
RewriteRule ^/$ /user.php

{spoiler title=Синтаксис регулярных выражений opened=0}Круглые скобки () используются для выделения групп символов. В дальнейшем к ним можно обращаться по номеру.
Символ ^ обозначает начало строки.
Символ $ обозначает конец строки.
Символ . обозначает любой символ.
Символ | обозначает альтернативу. Например, выражения "A|B" означают "A или B".
Символ ? ставится после символа (группы), который может как присутствовать, так и отсутствовать.
Символ * ставится после символа (группы), который может отсутствовать или присутствовать неограниченное число раз подряд.
Символ + действует аналогично символу * с той лишь разницей, что предшествующий ему символ обязательно должен присутствовать хотя бы один раз.
Квадратные скобки [] используются для перечисления допустимых символов.
Квадратные скобки [^] используются для перечисления недоступных символов.
Символ \ ставится перед спецсимволами, если они нужны в своем первозданном виде.
Все, что расположено после символа '#', считается комментарием.{/spoiler}

sitedelkin.ru

Редирект на HTML

Вы здесь: Главная - HTML - HTML Основы - Редирект на HTML

Редирект на HTML

Иногда возникает необходимость сделать редирект пользователя без использования скриптов. Напоминаю, что редирект - это перенаправление пользователя с одного адреса на другой. Разумеется, можно воспользоваться JavaScript. Однако, не всегда это удобно, вдобавок, не у всех включён JavaScript (хотя сейчас это безумная редкость, но всё-таки), поэтому в этой статье я расскажу о том, как сделать редирект на HTML.

Редирект на HTML делается с помощью мета-тега "refresh". Значение данного мета-тега задаёт основные параметры для редиректа:

<meta http-equiv="refresh" content="5;URL=http://myrusakov.ru">

Обратите внимание, что число в значении атрибута "content" (в нашем случае 5) означает, через сколько секунд будет совершён переход. А через точку с запятой мы задаём значение URL, в котором указываем, на какой адрес необходимо направить пользователя.

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

<meta http-equiv="refresh" content="5;URL=">

Как видите, здесь значение URL ничему не равно. Результатом выполнения этого HTML-кода будет обновление страницы каждые 5 секунд.

Теперь Вы знаете, что редирект возможен не только на JavaScript, но и на HTML. Что очень здорово, так как не всегда есть возможность использовать JavaScript, а такое действие, как регулярное автоматическое обновление страницы, достаточно часто используется.

  • Редирект на HTML
    Создано 10.12.2010 20:56:22
  • Редирект на HTML Михаил Русаков
Предыдущая статья Следующая статья

Копирование материалов разрешается только с указанием автора (Михаил Русаков) и индексируемой прямой ссылкой на сайт (http://myrusakov.ru)!

Добавляйтесь ко мне в друзья ВКонтакте: http://vk.com/myrusakov.
Если Вы хотите дать оценку мне и моей работе, то напишите её в моей группе: http://vk.com/rusakovmy.

Если Вы не хотите пропустить новые материалы на сайте,
то Вы можете подписаться на обновления: Подписаться на обновления

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

Порекомендуйте эту статью друзьям:

Если Вам понравился сайт, то разместите ссылку на него (у себя на сайте, на форуме, в контакте):

  1. Кнопка:
    <a href="https://myrusakov.ru" target="_blank"><img src="https://myrusakov.ru/images/button.gif" alt="Как создать свой сайт" /></a>

    Она выглядит вот так: Как создать свой сайт

  2. Текстовая ссылка:
    <a href="https://myrusakov.ru" target="_blank">Как создать свой сайт</a>

    Она выглядит вот так: Как создать свой сайт

  3. BB-код ссылки для форумов (например, можете поставить её в подписи):
    [URL="https://myrusakov.ru"]Как создать свой сайт[/URL]

myrusakov.ru

Как сделать редирект с .html на без html [Архив]


Просмотр полной версии : Как сделать редирект с .html на без html


Conocube

05.02.2013, 17:21

добрый день!
Вопрос как перекинуть страницы типа site.ru/bla.html на site.ru/bla?
Спасибо!


Милованов Ю.С

05.02.2013, 17:26

RewriteRule ^(.*)\.html$ /$1 [R=301,L]
R=301 - это СЕОшное "перекидывание"
Возможно надо будет убрать /, так как не проверял. Все время с ними у меня путаница:bl:


Conocube

05.02.2013, 17:30

RewriteRule ^(.*)\.html$ /$1? [R=301,L]
R=301 - это СЕОшное "перекидывание"
не работает =(


RewriteRule ^(.*)\.html[/]$ ./index.php?module=user&param=$1&page=$2 [QSA]
RewriteRule ^bla[/](.*).html[/]$ ./index.php?module=user&page=$1 [QSA]

ну моня еще [L] до кучи прикрутить/завершить ))


Милованов Ю.С

05.02.2013, 17:41

Пардон, забыл кое-что:)
RewriteRule ^(.*)\.html$ http://www.youdomain.zone/$1 [R=301,L]

Вы лучше скажите че хотите сделать(конечная цель сего действа). Может Вы просто не можете объяснить свои хотелки:)


Conocube

05.02.2013, 18:06

Милованов Ю.С, что то тоже не пашет.
А хочу я следующее, был сайт на html без движка адреса, site.ru/bla.html
Я его переношу на движок, имена страниц сохранил, а вот от расширения решил избавиться. проблема в том, что много всего закуплено на адреса site.ru/bla.html, поэтому я хочу сделать редирект с site.ru/bla.html на site.ru/bla


чел(тс) видимо немного некорректно объяснил чего хочет..видимо ему нужно при запросе http://www.site.ru/index.html чтобы открывалось http://www.site.ru/

RewriteEngine on
RewriteBase /
RewriteCond %{REQUEST_URI} ^/index\.html$
RewriteRule ^(.*)$ http://site.ru/ [R=301,L]

не то?


Conocube

05.02.2013, 18:17

iren K, не совсем, внутренние страницы - site.ru/articles-bla.html site.ru/articles-bla2.html site.ru/articles-bla3.html в -> site.ru/articles-bla site.ru/articles-bla2 site.ru/articles-bla3 соответственно.


Милованов Ю.С

05.02.2013, 18:35

Ну так бы сразу и сказали. А то, видите ли, ему надо чтобы "перекидывало":)

#переадресовываем на ЧПУ
RewriteRule ^(.*)\.html$ http://www.youdomain.zone/$1 [R=301,L]

#обрабатываем ЧПУ
RewriteRule ^(.*)$ /$1.html [L]

Это?


Conocube

05.02.2013, 19:14

Милованов Ю.С, я вам очень благодарен за потраченное время, и предложенные варианты, но что то не помогает=((
смотрите вот на живом примере покажу http://yango.su/gallery.htm
перешли?
адрес стал http://yango.su/gallery
как такое сделать?
Спасибо.


пару недель назад была уже тема. курите:
http://joomlaforum.ru/index.php?PHPSESSID=k2atr76qladhkqhutmjj4vtcg3&/topic,223542.0.html
http://www.optimization.com.ua/articles/popularnie-shabloni-redirektov.html
http://www.art-shok.ru/advice/htaccess-examples/
На форуме джумла - 1 ссыль тоже есть ссылки. их тоже надо посмотреть.


как такое сделать?
Спасибо.
вы хотите из файла сделать категорию?


Conocube

05.02.2013, 19:35

777177, спасибо!! вот она рыба моей мечты -

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


RewriteRule ^(.*)\.html$ /$1? [R=301,L]
R=301 - это СЕОшное "перекидывание"
не работает =(

Должно работать. RewriteEngine On надеюсь вы добавили перед редиректом?


Conocube

05.02.2013, 19:38

Должно работать. RewriteEngine On надеюсь вы добавили перед редиректом?
да. может дело было в кэше. Спасибо всем за участие!


Милованов Ю.С

05.02.2013, 19:42

Я там перед $1 ставил слеш, и писал, что может надо, а может нет.

добрый день!
Вопрос как перекинуть страницы типа site.ru/bla.html на site.ru/bla?
Спасибо!
Вопросик после $1 думал Вам так надо, а это оказываетцо был знак пунктуации:)


Conocube

05.02.2013, 19:45

Я там перед $1 ставил слеш, и писал, что может надо, а может нет.

Цитата:
Сообщение от Conocube
добрый день!
Вопрос как перекинуть страницы типа site.ru/bla.html на site.ru/bla?
Спасибо!
Вопросик после $1 думал Вам так надо, а это оказываетцо был знак пунктуации
=)) еще когда его писал думал, как бы не восприняли его как часть адреса))) Спасибо Вам!


friend11

14.02.2013, 13:56

Привет, Conocube а не подскажешь что за галлерея на этом сайте http://yango.su/gallery и где ее можно скачать, если не секрет.
Спасибо.


Милованов Ю.С

14.02.2013, 14:16

Жаль что не все еще знают о правильности серча в плане индексации ссылок из постов.


Conocube

14.02.2013, 22:00

Жаль что не все еще знают о правильности серча в плане индексации ссылок из постов. Что то не улавливаю, что Вы имеете ввиду.


Милованов Ю.С

14.02.2013, 22:09

Я имел ввиду пост от friend11.
Это авто-бот. Просто владелец не знает, что ссылки с постов не индексируются.


Conocube

14.02.2013, 22:25

Я имел ввиду пост от friend11.
Это авто-бот. Просто владелец не знает, что ссылки с постов не индексируются.
так это он спрашивает про реализацию галереи на моем сайте)) я думаю интереса его нет.


friend11

19.03.2013, 10:31

так это он спрашивает про реализацию галереи на моем сайте)) я думаю интереса его нет.

Это точно, Conocube не подскажите, как реализована галерея на вашем сайте, если не трудно напишите в личку, спасибо


searchengines.guru

Отправить ответ

avatar
  Подписаться  
Уведомление о