Optimization.com.ua - всё о поисковой оптимизации и юзабилити

301 редирект: популярные шаблоны

Автор: Виталий Винников, Апрель 12, 2011

Версия для печати

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

Поскольку веб-сервер Apache является наиболее распространенным, то все шаблоны, приведенные в данной статье, относятся именно к нему, а конкретно — должны прописываться в корневом файле .htaccess. Перед использованием шаблонных 301 редиректов убедитесь в том, что в Apache подключен модуль mod_rewrite (файл httpd.conf).

Для использования 301 редиректа сначала в первых строках файла .htaccess прописываются директивы, необходимые для работы модуля mod_rewrite:

Options +FollowSymLinks
RewriteEngine On
RewriteBase /

Рассмотрим типичные правила перенаправлений.

Редирект с адреса с www-префиксом на адрес без www

Подобные перенаправления переадресуют все страницы сайта вида http://www.site.com.ua/page.html на страницы http://site.com.ua/page.html. Для такого типа редиректа можно использовать следующий шаблон:

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

Или же упрощенный вариант:

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

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

Этот 301 редирект со страниц домена вида http://site.com.ua/page.html на страницы http://www.site.com.ua/page.html делается подобным описанному выше методу, только меняется положение www:

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

Или альтернативный упрощенный вариант:

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

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

Склейка индексной страницы с корнем сайта

Такой тип редиректов часто доставляет проблемы в случае, если используется CMS, перенаправляющая все запросы к сайту на индексную страницу. Добавление директивы в .htaccess файл тогда приведет к циклу бесконечных перенаправлений. Самым простым выходом из ситуации будет вставка небольшого фрагмента кода в начало индексной страницы (например index.php):

if($_SERVER[‘REQUEST_URI’] == "/index.php") {

header("Location: /",TRUE,301);
exit();

}

Таким образом, при обращении к индексной странице сравнивается, если запрошенный адрес равен, к примеру, http://site.ua/index.php, то условие срабатывает и происходит переадресация на корень сайта http://site.ua/. Если сайт не перенаправляет все запросы на index.php можно воспользоваться следующим шаблоном для mod_rewrite:

RewriteCond %{THE_REQUEST} ^[A-Z]{3,9}\ /index\.php\ HTTP/
RewriteRule ^index\.php$ http://site.com.ua/ [R=301,L]

Такой же редирект может использоваться и для других расширений главной страницы, таких как index.html, или например index.phtml.

Редирект с поддомена на подпапку

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

Пусть, к примеру, есть страница с адресом http://eng.site.com.ua/page.html и нам нужно склеить ее с дублирующей страницей http://site.com.ua/eng/page.html. Используем для этого следующий шаблон (прописывается для .htaccess файла поддомена):

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

Редирект с подпапки домена на поддомен

Если необходимо наоборот, перенаправить пользователя с подпапки на поддомен, то используйте следующий шаблон:

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

Редирект с одних расширений файлов на другие

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

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

Редирект на другой сайт

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

RewriteCond %{HTTP_HOST} ^oldsite\.com\.ua
RewriteRule ^(.*)$ http://newsite.com.ua/$1 [R=301,L]

Все страницы старого домена будут перенаправлены на соответствующие страницы нового.

301 Редирект динамических страниц

При модернизации динамического сайта и создании ЧПУ-адресов часто возникает необходимость перенаправить старые страницы с параметрами ID на новые с ЧПУ. Например, чтобы переадресовать страницу вида http://site.com.ua/page.php?id=13 на новую страницу http://site.com.ua/newname.html, используется следующая конструкция:

RewriteCond %{QUERY_STRING} ^id=13$
RewriteRule ^/page.php$ http://site.com.ua/newname.html [L,R=301]

Редиректы кириллических и .рф доменов

Все описанные выше правила справедливы и для доменов написанных кириллицей. Однако, при создании перенаправлений кириллические домены лучше заменять так называемым Punycode. Для этого можно воспользоваться одним из онлайн-сервисов конвертации WhiteWhois.

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

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

Автор статьи: Виталий Винников

Заместитель руководителя отдела разработки web-проектов компании «Promodo»

Обновления на E-mail или RSS

Понравилась статья и хотите получать новые?

 

Проверьте также папку "Спам" для активации ссылки

Подписавшись на обновления, вы получите:
1. Эксклюзивные статьи об интернет-маркетинге, продвижении сайтов и юзабилити
2. Интервью с экспертами отрасли
Гарантируем анонимность e-mail адреса

  • Yanot

    Подскажите пожалуйста, как сделать такой редирект:
    http://webinterinfo.net/loban/ на
    http://ifef-lobanovsky.com

    Я совсем запутался. Спасибо.

    • http://devaka.ru/ Сергей Кокшаров

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

  • http://sputnik.kiev.ua/ Yuriy

    наверное поспешил с +1. Есть сайт, который обрабатывает запросы через index.php/ Но при добавлении рекомендованного здесь кода в начало файла — выдает ошибку в line 3, ну и сайт вообще не работает. Если добавить указанный здесь кусок ПЕРЕД кодом самого idex.php — все слова превращаются в «кракозябры» и слетает верстка.
    Насколько вредным для СЕО будет использование Реврайта (ниже) в сайте который обрабатывает запросы через index.php?
    RewriteCond %{THE_REQUEST} ^[A-Z]{3,9}\ /index\.php\ HTTP/

    RewriteRule ^index\.php$ http://site.com.ua/ [R=301,L]

    • http://sputnik.kiev.ua/ туры

      В htaccess по умолчанию стоит ещё такое правило:
      RewriteRule     ^(.*) index.php?%{QUERY_STRING} [L,E=REQUEST_URI:/index.php/$1]
      Может єто из-за него?

  • http://sputnik.kiev.ua/ yuriy

    зря мой комментарий удалили… рекомендую восстановить по-хорошему. иначе отберу назад +1

  • Алексей Буравлёв

    Здравствуйте.
    У меня проблема следующего характера.
    Несколько моих сайтов сделаны на простейшем самописном скрипте с использованием mod_rewrite для формирования ЧПУ:
    RewriteRule part/([/]+)/([/]+)/([/]+)/?$ /index.php?part=$1&type=$2&project=$3 [L]
    RewriteCond %{THE_REQUEST} /index.php?part=([&]+)&type=([&]+)&project=([ ]+) HTTP/
    RewriteRule ^index.php$ http://site.ru/part/%1/%2/%3/? [R=301,L]

    RewriteRule part/([/]+)/([^/]+)/?$ /index.php?part=$1&type=$2 [L]
    RewriteCond %{THE_REQUEST} /index.php?part=([&]+)&type=([^ ]+) HTTP/
    RewriteRule ^index.php$ http://site.ru/part/%1/%2/? [R=301,L]

    RewriteRule part/([/]+)/?$ /index.php?part=$1 [L]
    RewriteCond %{THE_REQUEST} /index.php?part=([ ]+) HTTP/
    RewriteRule ^index.php$ http://site.ru/part/%1/? [R=301,L]

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

    http://site.ru/part/xxx/yyy/zzz/
    http://site.ru/part/xxx/yyy/zzz

    http://site.ru/part/xxx/yyy/
    http://site.ru/part/xxx/yyy

    http://site.ru/part/xxx/
    http://site.ru/part/xxx

    Все дело в том что УРЛ
    http://site.ru/part/xxx/yyy/zzz/
    после обработки mod_rewrite интерпретируется движком как
    http://site.ru/index.php?part=xxx&type=yyy&project=zzz
    все переменные part, type и project соответственно передаются в скрипт и всё работает.
    И всё бы хорошо, но как оказалось УРЛ
    http://site.ru/part/xxx/yyy/zzz (без слеша на конце)
    также прекрасно интерпретируется как
    http://site.ru/index.php?part=xxx&type=yyy&project=zzz
    и по этому адресу получаем страницу с тем же содержимым.
    Соответственно возникла проблема с дублированием контента на сайте.

    Как Яндекс вышел на УРЛы без слеша? Не знаю. Скрипт сайта исправно генерирует все УРЛы со слешем в конце. Ссылки которые покупаю тоже всегда со слешем. Вероятно появились какие-то естественные беки без слеша. Но сейчас не об этом.

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

  • http://sputnik.kiev.ua/ Tury

    RewriteCond %{THE_REQUEST} ^[A-Z]{3,9}\ /index\.php\ HTTP/

    RewriteRule ^index\.php$ http://site.com.ua/ [R=301,L]
     — а что плохого в использовании этого редиректа для сайтов, которые направляют запрос через index.php?

  • http://fomenko.org.ua Евгений Фоменко

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

    Есть страницы вида
    site.com/firma.php?id=1
    site.com/firma.php?id=2
     
    site.com/firma.php?id=3
     

    Как их перенаправить на страницы
    site.com/item1.html
     
    site.com/item2.html
     
    site.com/item3.html
     

    Могу конечно в ексель загнать и сделать, но можно же в одну строку это написать, правда? 

    • http://twitter.com/Vinnikov Vinnikov Vitaly

      А физически при открытии site.com/item1.html, должно отображаться содержимое site.com/firma.php?id=1 ?

      • http://fomenko.org.ua Евгений Фоменко

        Если я правильно понял суть вопроса, то да — firma.php является самописным скриптом, который заменили CMS — новые адреса получились вида /item1.html — нужно направить туда людей с firma.php, поскольку там 40 000 страниц в индексе и ручками тяжело (((

        Думаю вот такой синтаксис крутить

        RewriteCond %{THE_REQUEST} /firma.php?id=$ HTTP/RewriteRule ^firma.php?id=$ catalog/item([0-9]+).html [R=301,L]

  • http://fomenko.org.ua Евгений Фоменко

    Если я правильно понял суть вопроса, то да — firma.php является самописным скриптом, который заменили CMS — новые адреса получились вида /item1.html — нужно направить туда людей с firma.php, поскольку там 40 000 страниц в индексе и ручками тяжело (((

    Думаю вот такой синтаксис крутить 

    RewriteCond %{THE_REQUEST} /firma.php?id=$ HTTP/RewriteRule ^firma.php?id=$ catalog/item([0-9]+).html [R=301,L]

    • http://twitter.com/Vinnikov Vinnikov Vitaly

      Тогда быстрее всего вставить в начало скрипта firma.php такой код:
      if(is_numeric($_GET[‘id’])){ header(«Location: /catalog/item».intval($_GET[‘id’]).».html»,TRUE,301);}
      Если очень хочется через .htaccess — то нужно видеть весь его код.

      • http://fomenko.org.ua Евгений Фоменко

        Виталий, спасибо за решение — оно отлично и корректно работает.
        Думаю его достаточно будет, правда? 

        А htaccess выглядит вот так — 
        AddDefaultCharset windows-1251

        RewriteEngine On
        RewriteBase /

        RewriteCond %{HTTP_HOST} ^www.my-dnepr.org.ua$
        RewriteRule (.*) http://my-dnepr.org.ua/$1 [R=301,L]

        RewriteRule ^.htaccess$ — [F]
        RewriteCond %{REQUEST_URI} !.(jpg|jpeg|ico|gif|png|css|xml|js|pl|txt)$ [NC]
        RewriteCond %{REQUEST_FILENAME} !^/admin
        RewriteCond %{REQUEST_FILENAME} !^/migrate
        RewriteCond %{REQUEST_FILENAME} !^/install
        RewriteCond %{REQUEST_FILENAME} !-f
        RewriteCond %{REQUEST_FILENAME} !-d

        RewriteRule ^(.*)$ /index.php [L]

        • http://twitter.com/Vinnikov Vinnikov Vitaly

          Да этого вполне достаточно.

  • http://fomenko.org.ua Евгений Фоменко

    Если я правильно понял суть вопроса, то да — firma.php является самописным скриптом, который заменили CMS — новые адреса получились вида /item1.html — нужно направить туда людей с firma.php, поскольку там 40 000 страниц в индексе и ручками тяжело (((

    Думаю вот такой синтаксис крутить

    RewriteCond %{THE_REQUEST} /firma.php?id=$ HTTP/RewriteRule ^firma.php?id=$ catalog/item([0-9]+).html [R=301,L]

  • http://fomenko.org.ua Евгений Фоменко

    Правда он не работает, а мне не хватает знаний его заставить — понимаю, что в районе «item([0-9]+).html» должна стоять переменная, которая указывает на нужные ID, но вот где и как…

  • TesterOK

    Подскажите, как сделать редирект для динамических страниц, например:
    site.com.ua?p=flowers -> site.ua?p=flowers

    • Виталий Винников

      вам для всего сайта нужно? или только если задан параметр «p»?

      если для всего сайта, то где то так:

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

      • TesterOK

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

  • Вопрошалка

    не знаю сможете помочь или нет, но вот:

    делаю 301 редирект таким образом:

    Redirect 301 /stat/page.htm http://www.sait.ru/question/page.htm

    все хорошо, но конечная ссылка на которую производится переход после редиректа выглядить как http://www.sait.ru/question/page.htm?url=stat/page.htm

    как избавится от этого вопроса и ненужного окончания?

    • TesterOK

      Правильней будет так:

      Redirect 301 /stat/page.htm /question/page.htm

  • Owwk

    Здравствуйте!
    Как сделать редирект (склейку доменов) с http://www.site.ru.com на site.ru.com (Joomla)
    в .htaccess пробовал
    RewriteCond %{HTTP_HOST} ^www\.site\.ru\.com$ [NC]

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

    RewriteRule ^(.*)$ http://%1/$1 [R=301,L]
    все страницы с http://www.site.ru.com/……….
    переадресует на
    http://site.ru.com/index.php

  • http://macosworld.ru Влад Гороховский

    Не подскажете, как сделать редиректы по вот такому шаблону:

    site.com/tag/name на site.com/vse-pro/name

    То есть надо tag заменить везде на vse-pro :)

    спасибо! 

  • http://antiglobalism.tk/ Imperial Commissar

    А можно ли без .htaccess, например через index.php (.html)?

  • Efirus

    Здравствуйте!
    Подскажите, как в .htaccess установить редирект со старых страниц на новые:
    с /site.ru/old.html на sait.ru/direktoriya/new.php

    пробовал так:
    Redirect 301 /old.html http://site.ru/direktoriya/new.php
    не пошло. все страницы спокойно грузятся по своим адресам.

    И еще вопрос: когда можно будет старые страницы удалять? После установки редиректа или после переиндексации новых?

  • flex

    Здравствуйте,  у меня беда есть сайт все біло хорошо в индексе в яндексеа, все страницы біли без слеша, и небіло дублей страниц.

    Но  потом я поставил сквозную ссылку на морду сайта (site.ru/) с каждой страницы со слешем (читал на одном форуме мол без слеiа нельзя так как сильная нагрузка на сервер будет, если будут много пользователей заходить на сайт)
    Долго искал в нете инфу про редиректы , нашел это :
    RewriteCond %{REQUEST_FILENAME} !-f 
    RewriteCond %{REQUEST_URI} !(.*)/$ 
    RewriteRule ^(.*)$ /$1/ [R=301,L]
    сделает редирект на слеш в конце
    у меня уже стоит редирект с http://www.site.ru на site.ru и другой редирект с страницы index.php на морду site.ru
    читал могут быть конфликты если много редиректов и они не по порядку стоят не соблюдается синтаксис. Что подскажете?

  • Galy0576

    Здравствуйте,Виталий.
    У меня такая проблемка- переделываю весь сайт в динамический, структура почти не изменяется (добавляется несколько новых страниц с блоками, т.к. использую include)- т.е. меняю все существующие страницы  с html на php.

    Я так понимаю мне в файл  .htaccess нужно вставить только этот код? — 
    Options +FollowSymLinks

    RewriteEngine On

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

    Или что-то ещё нужно сделать?

    • http://twitter.com/Vinnikov Vinnikov Vitaly

      Здравствуйте, все верно . Если что то не получится — пишите, разберемся

  • http://vk.lviv.ua/ Volodymyr Byno

    а если нужно с http://site.lviv.ua/index.php?page=homepage&lang=ru

    на 
    http://site.lviv.ua/ 
    ? тут же два параметра, как быть?

  • http://evroluxe.com/ Ruslan_rv

    Добрый день, а подскажите пожалуйста  при редиректе на без www Ваш код прописан следующим образом 

    RewriteCond %{HTTP_HOST} ^www.site.com.ua$ [NC]

    RewriteRule ^(.*)$ http://site.com.ua/$1 [R=301,L]

    но на большом количестве сайтов в интернете блогеры дают такой вариант

    RewriteCond %{HTTP_HOST} ^www.site.com.ua$ [NC]

    RewriteRule ^(.*)$ http://site.com.ua/$1 [R=301,L]

    Да, разница заключается в наличии обратного слеша в первой строке, так вот меня интересует следующее, существует ли разница или нет, и у кого всетаки правильно, а также на что это может повлиять ?  =) 

    спасибо .

  • http://c-office.com.ua/ Sophya

    Спасибо, помогло.

  • http://www.facebook.com/profile.php?id=100000154480515 Harut Yervandyan

    Здравствуйте, подскажите вариант редиректа, при котором следующий код будет работать, я так понимаю проблема в символе & . Каким образом его нужно писать, чтоб редирект работал?
    Redirect 301 /viewtopic.php?f=62&t=1110 http://domen.ru/viewtopic.php?f=5&t=1110

  • WindBlow

    Подскажите, а можно сделать редирект с несуществующей something.domain.com на существующий domain.com/something-exist ?

  • Cashmaster23

    Здравствуйте. Выручите пожалуйста!!!
    На жумловском сайте седня ночью убрал все идентификаторы, к примеру:
    сайт вида:
    site.ru/category/2-page1
    нужно сделать 301 редирект, чтобы писалось 
    site.ru/category/page1
    Если бы вопрос касался 10 страниц, поставил бы стандартный редирект, но у меня их сотни, вся перелинковка в новостях полетела.
    Кто знает подскажите как редиректом по умолчанию убрать в адресной строке цифры вида «ххх-«

  • Сергей

    Здравствуйте.
    Подскажите пожалуйста, как должен выглядеть .htaccess (желательно полный его вид) если адреса страниц поменялись:
    sait.com/anecdot.php на sait.com/anecdot.html

  • Qwerty

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

  • Дмитрий Волланд

    Доброе время суток. 
    Есть определенный сайт и на нем есть дубли страниц, т.е. site.ru/state и site.ru/state.html идентичны, т.е. дубль.

    Вопрос. Как поставить редирект с ссылок без хтмл на ссылки с хтмл?

    Заранее спасибо.

  • mets

    подскажите, как сделать редирект с доменов http://www.site.com.ua и site.com.ua на домен site.ua ?

  • sinekura

    Спасибо. Только тут нашла как делать 301 редирект для сайтов .com.ua

  • Aleksey

    Помогите сделать переадресацию
    Ввожу новые категорию верхнего уровня
    было сайт.ру/комедии/чингачкук
    стало сайт.ру/ФИЛЬМЫ/комедии/чингачкук
    Правилен ли такой редирект? Или может что то другое посоветуете?
    RewriteRule ^комедии/(.*)$ http://сайт.ру/ФИЛЬМЫ/комедии/$1 [R=permanent,L]

    • Aleksey

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

  • ecolora

    Подскажите, пожалуйста, решение такой проблемы:

    В файле .htaccess записано:

    RewriteEngine on
    RewriteBase /
    RewriteRule ^stopkids.html «http://www.ecolora.ru/index.php/2010-07-09-03-51-16/mysli/1005-o-zashhite-detej-ot-informacii-prichinjajushhej-vred-ih-zdorovju-i-razvitiju» [R=301,L]

    Т.е. при переходе на адрес:

    http://www.ecolora.ru/stopkids.html

    Осуществляется перенаправление на:

    http://www.ecolora.ru/index.php/2010-07-09-03-51-16/mysli/1005-o-zashhite-detej-ot-informacii-prichinjajushhej-vred-ih-zdorovju-i-razvitiju

    И в результате меняется URL в браузере. Как оставить url неизменным?

    http://www.ecolora.ru/stopkids.html

    Заранее Вам благодарен.

  • Максим

    Здравствуйте. Так и не нашёл, а может быть не увидел решения насущной проблемы удаление дублей. Если есть статья site.ru/text. и есть ее дубль скажем site.ru/20-stat/text Что с ними делать? нужно их склеить? Какой шаблон лучше подойдёт для этих целей. Заранее спасибо

  • http://prosto.tk/ Alexei Zubik

    Подскажите, а если файл ..htaccess отсутствует и сайт чистый html на восемь страниц, как сделать редирект? (luxfrock.tk)

  • Максим

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

    — не работат, перенаправляет на ‘www.’ как будто %1 пуст — что делать?

  • Роман

    Как сделать редирект всех страниц сайта, кроме главной?

  • Aleksey Kruger

    Здравствуйте!
    Можно сделать редирект на подпапку? с условиями:
    http://www.site.ua > site.ua
    sub.site.ua > site.ua/sub/

    http://www.sub.site.ua > site.ua/sub/

    Заранее спасибо! А то шаблоны вроде
    RewriteCond %{HTTP_HOST} !^site.ua
    RewriteRule (.*) http://site.ua/$1 [R=301,L]

    только поддомен www или sub удаляют, а в качестве подпапки в конец не передают ни в apache, ни в online.

  • VitsleiPutslei

    Здравствуйте, подскажите пожалуйста как сделать редирект вот такой:

    http://ваш сайт.ru/name_category/product-name.html нужно заменить на
    http://ваш сайт.ru/name-category/product-name.html

    C ниж. ( __ ) на тире (-) только в названии категории (name category)

    категорий много.

  • Тормоз

    Здравствуйте.
    Подскажите пожалуйста команду при реврайтинге с
    домен.рф/gorod
    на поддомен
    город.домен.рф

    Сочетание двух языков возможно вообще?

  • Светлана

    Добрый день, Виталий. Не подскажите ли как прописать перенаправление картинок с домена на поддомен. Спасибо.

  • klod

    Здрасти
    У меня стоит парсер иногда он генерирует адреса что в коце ипоялется домен например так
    http://site.com/track/papka/-Depeche-Mode-Heaven-(Freemasons-Radio-Mix)-(http://club-music.com/club_bestclubmusic)
    Вот как сделать редирект в конце убрать в скобках домен
    Спасибо

  • Серж

    Как сделать редирект с кириллического домена
    кино,рф
    на этот же домен только в puncode
    Дело в том,что яндекс думает,что это два разных сайта
    в итоге вместо 500 страниц в индекс попало 1000 страниц.
    Прогнал этот сайт через программу XENU,
    XENU тоже нашел ошибку пишет not found
    500 pages linking to this one

  • gibson

    подскажите пожалуйста, как сделать редирект с site.com/ на site.com (без слеша)?

  • Игорь

    Подскажите плз как реализовать редирект через htaccess со следующей задачей:

    301 редирект со страниц вида http://www.site.ru/selector/?cardid=102&sectionid=4 на страницу вида http://www.site.ru/selector/?sectionid=4&cardid=102

    То есть просто менять параметры местами. Прописывать каждую страницу отдельно не вариант, их слишком много. Нужен именно шаблон.

  • Вова

    Здравствуйте, как зделать редирект
    с

    http://site.com.ua/ru/.html
    на

    http://site.com.ua/ru/

    только для этой главной страницы русской версии сайта.

  • Татьяна

    Подскажите, хочу убрать в урле php. Генератором создан код

    RewriteEngine On
    RewriteRule ^price-nsp-uan$ /price-nsp-uan.php [L].

    PHP в конце убрало. Но теперь 2 файла высвечивается http://nspdoma.com.ua/price-nsp-uan.php и http://nspdoma.com.ua/price-nsp-uan

    Как сделать с первого переадресацию на второй. Если делаю 301, то пишет циклическая переадресация

  • http://bplab.com/ Julia

    Добрый день!

    Подскажите, пожалуйста, как склеить страницы site.com/mobile/ и site.com/mobile/index.php ?

    Спасибо!

  • ТехноПерец

    Подскажите пожалуйста как сделать редирект с http://altoris.com.ua/catalog/navolochki_i_naperniki/ на http://www.elines.com.ua/catalog/navolochki_i_naperniki/

  • Алекса

    Помогите, пожалуйста, разобраться с такой проблемой.
    Сделан 301 редирект с адреса без www на адрес с www:
    RewriteEngine On
    RewriteCond %{HTTP_HOST} ^site.ru$ [NC]
    RewriteRule ^(.*)$ http://www.site.ru/$1 [R=301,L]
    Всё работает корректно. Но при этом все динамические страницы такого вида (не сочтите только за рекламу!), как например:
    http://www.svetlussole.ru/cat.html?cat=%D1%EF%EE%F2%FB
    не отображаются если убрать префикс www из адреса.
    А при этом динамические страницы такого вида, как например: http://www.svetlussole.ru/cat.html?cat=Loft
    если также убрать префикс www отображаются совершенно корректно. В чём причина? И как это исправить? ПОМОГИТЕ ПОЖАЛУЙСТА!

  • Людмила Смальчук

    Как сделать такой редикт 301 ?

    Технические дубли.
    Необходимо настроить 301 редирект по такому правилу для всех страниц сайта:
    со страниц содержащие в конце index.php должен быть настроен 301 редирект на такую же без него
    пример:
    http://мой сайт/knopki-krepezh/knopki-pereklyuchateli-tumblery/index.php
    редирект на
    http://мой сайт/knopki-krepezh/knopki-pereklyuchateli-tumblery
    тоже самое и для страниц содержащих .html и .htm

    спасибо жду помощи

  • Андрей Скарлыгин

    Добрый день, подскажите пожалуйста как сделать редирект со страниц типа
    /listings/doma/ на страницы /filtrs/t-doma/

  • ulcigor
  • Alex Shubin

    Привет всем! Через .htaccess можно отключить http/2?