Редирект — различия между версиями
Stexe (обсуждение | вклад) |
Alexei (обсуждение | вклад) |
||
Строка 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. Все страницы, кроме админки, будут перенаправлятся на адрес без слэша. Админка с перенаправлением не будет работать.