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

Материал из Umicms
Перейти к:навигация, поиск
Строка 44: Строка 44:
 
</source>
 
</source>
 
Разделителем здесь является пробел, принцип старый: первое значение - откуда, второе - куда.
 
Разделителем здесь является пробел, принцип старый: первое значение - откуда, второе - куда.
 +
 +
 +
Если нужно добавить перенаправление, чтобы убирался слэш на конце адреса страницы, то для решения задачи нужно вставить такой код в файл /.htaccess в корне сайта после строчки "RewriteEngine On":
 +
<source lang="apache">
 +
RewriteCond %{REQUEST_FILENAME} !-d
 +
RewriteCond %{REQUEST_URI} !^/admin/.*
 +
RewriteRule ^(.*)/$ /$1 [L,R=301]
 +
</source>
 +
и выключить опцию url-suffix.add в файле config.ini.
 +
Все страницы, кроме админки, будут перенаправлятся на адрес без слэша. Админка с перенаправлением не будет работать.
 +
  
 
[[Категория:Вопросы и уроки разработки сайтов на UMI.CMS]]
 
[[Категория:Вопросы и уроки разработки сайтов на UMI.CMS]]

Версия 07:59, 17 марта 2016

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

Для создания перенаправления пользователя существует множество способов, некоторые из них легко применить и в UMI.CMS. Ниже приведем некоторые примеры:
Самый основной способ создания перенаправления, это добавление записи в Базу данных в таблицу cms3_redirects.
В таблице вам следует заполнить три поля:
1. source - относительный адрес откуда производить перенаправление.
2. target - соответственно куда.
3. status - с каким статусом. Если вы не знаете какой вам нужен, используйте 301.
Так же можно воспользоваться статьей Redirect_в_системе,_перенос_сайта_на_umi.cms,_ч.1 и написать себе скрипт для удобства.

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

В добавок к стандартным для UMI.CMS способам, есть стандартные HTML средства. Следующий meta тег, позволяет произвести необходимое перенаправление, но использоваться он может только в секции HEAD, HMTL документа. Атрибут CONTENT позволяет перенаправить на указанную после URL= страницу, а первое значение обозначает задержку в секундах.

<META HTTP-EQUIV="REFRESH" CONTENT="5; URL=http://ya.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. Все страницы, кроме админки, будут перенаправлятся на адрес без слэша. Админка с перенаправлением не будет работать.