Редирект — различия между версиями

Материал из Umicms
Перейти к:навигация, поиск
 
(не показаны 4 промежуточные версии 2 участников)
Строка 1: Строка 1:
'''Актуально для версии 2.9'''
+
'''Актуально для версии 20.'''
  
Для создания перенаправления пользователя существует множество способов, некоторые из них легко применить и в UMI.CMS. Ниже приведем некоторые примеры:<br />
+
В последних версиях системы для создания редиректов существует специальный модуль “Редиректы”, с помощью которого можно за несколько простых шагов создать необходимое вам перенаправление.<br/>
Самый основной способ создания перенаправления, это добавление записи в Базу данных в таблицу cms3_redirects.<br />
+
Подробнее о работе с этим модулем вы можете почитать в нашей [http://help.docs.umi-cms.ru/rabota_s_modulyami/module_redirects/ документации].
В таблице вам следует заполнить три поля:<br />
 
1. source - относительный адрес откуда производить перенаправление.<br />
 
2. target - соответственно куда.<br />
 
3. status - с каким статусом. Если вы не знаете какой вам нужен, используйте 301.<br />
 
Так же можно воспользоваться статьей [[Redirect_в_системе,_перенос_сайта_на_umi.cms,_ч.1]] и написать себе скрипт для удобства.<br />
 
  
 
Помимо этого в системе есть предназначенный для той же цели макрос %content redirect('http://www.umi-cms.ru')%. Его можно использовать в шаблонах или непосредственно в контенте определенной страницы.<br />
 
Помимо этого в системе есть предназначенный для той же цели макрос %content redirect('http://www.umi-cms.ru')%. Его можно использовать в шаблонах или непосредственно в контенте определенной страницы.<br />
  
В добавок к стандартным для UMI.CMS способам, есть стандартные HTML средства. Следующий meta тег, позволяет произвести необходимое перенаправление, но использоваться он может только в секции HEAD, HMTL документа. Атрибут CONTENT позволяет перенаправить на указанную после URL= страницу, а первое значение обозначает задержку в секундах.<br />
+
На этом изобилие способов ещё не кончается. Также мы можем использовать JavaScript или файл дополнительной настройки сервера .htaccess.<br />
<source lang="html4strict">
+
В первом способе, скрипт для перенаправления может быть записан как минимум четырьмя способами:<br />
<META HTTP-EQUIV="REFRESH" CONTENT="5; URL=http://ya.ru" />
 
</source>
 
 
 
На этом изобилие способов ещё не кончается. Так же мы можем использовать JavaScript или файл дополнительной настройки сервера .htaccess.<br />
 
В первом, скрипт для перенаправления может быть записан как минимум четырьмя способами:<br />
 
 
<source lang="javascript">
 
<source lang="javascript">
 
#1:
 
#1:
Строка 37: Строка 27:
 
</source>
 
</source>
  
Во втором случае бесконечное множество вариантов. Самые простые из них:<br/>
+
Есть множество способов реализации второго способа, самые простые из них:<br/>
 
<source lang="apache">
 
<source lang="apache">
 
#1: RewriteRule / shop [R=301]  
 
#1: RewriteRule / shop [R=301]  
Строка 43: Строка 33:
 
#3: RedirectPermanent ^shop$ ^catalog$
 
#3: RedirectPermanent ^shop$ ^catalog$
 
</source>
 
</source>
Разделителем здесь является пробел, принцип старый: первое значение - откуда, второе - куда.
+
Разделителем здесь является пробел, принцип старый: первое значение откуда, второе куда.
 
 
  
 
Если нужно добавить перенаправление, чтобы убирался слэш на конце адреса страницы, то для решения задачи нужно вставить такой код в файл /.htaccess в корне сайта после строчки "RewriteEngine On":
 
Если нужно добавить перенаправление, чтобы убирался слэш на конце адреса страницы, то для решения задачи нужно вставить такой код в файл /.htaccess в корне сайта после строчки "RewriteEngine On":
Строка 53: Строка 42:
 
</source>
 
</source>
 
и выключить опцию url-suffix.add в файле config.ini.
 
и выключить опцию url-suffix.add в файле config.ini.
Все страницы, кроме админки, будут перенаправлятся на адрес без слэша. Админка с перенаправлением не будет работать.
+
Все страницы, кроме админки, будут перенаправляться на адрес без слэша. Админка с перенаправлением не будет работать.
 +
 
  
  
[[Категория:Вопросы и уроки разработки сайтов на UMI.CMS]]
+
[[Категория:Вопросы и уроки разработки сайтов на UMI.CMS]][[category:Модуль Редиректы]]

Текущая версия на 14:12, 22 марта 2019

Актуально для версии 20.

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

Помимо этого в системе есть предназначенный для той же цели макрос %content redirect('http://www.umi-cms.ru')%. Его можно использовать в шаблонах или непосредственно в контенте определенной страницы.

На этом изобилие способов ещё не кончается. Также мы можем использовать JavaScript или файл дополнительной настройки сервера .htaccess.
В первом способе, скрипт для перенаправления может быть записан как минимум четырьмя способами:

#1:
<script type="text/javascript">
    location="http://www.newdomain.com";
</script>
#2:
<script type="text/javascript">
    document.location.href="http://www.newdomain.com";
</script>
#3:
<script type="text/javascript">
    window.location.reload("http://www.newdomain.com");
</script>
#4:
<script type="text/javascript">
    document.location.replace("http://www.newdomain.com");
</script>

Есть множество способов реализации второго способа, самые простые из них:

#1: RewriteRule / shop [R=301] 
#2: Redirect 301 ^index.html$ /
#3: RedirectPermanent ^shop$ ^catalog$

Разделителем здесь является пробел, принцип старый: первое значение — откуда, второе — куда.

Если нужно добавить перенаправление, чтобы убирался слэш на конце адреса страницы, то для решения задачи нужно вставить такой код в файл /.htaccess в корне сайта после строчки "RewriteEngine On":

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

и выключить опцию url-suffix.add в файле config.ini. Все страницы, кроме админки, будут перенаправляться на адрес без слэша. Админка с перенаправлением не будет работать.