MODX. Особенности редиректов
Отредактировано: 18 Марта 2018
В CMS Modx Revolution все редиректы надо вставлять до строчки включающей дружественные URL
# The Friendly URLs part
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ index.php?q=$1 [L,QSA]
Редирект со страниц без слеша на страницы со слешем
Через .htaccess
# Со страниц без слеша на страницы со слешем
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^([^.]+)(?<!/)$ /$1/ [R=301,L]
При этом для борьбы с множественным слешем можно создать плагин на событие OnWebPageInit с таким содержимым
<?php
switch ($modx->event->name)
{
case 'OnWebPageInit':
if (stristr($_SERVER['REQUEST_URI'], '//'))
{
$g = preg_replace("|[//\s]+|is", "/", $_SERVER['REQUEST_URI']);
$modx->sendRedirect($g);
}
break;
}
Через плагин на событие onHandleRequiest:
<?php
if ($modx->context->key == 'mgr') {return;}
if (substr($_SERVER['REQUEST_URI'], -1) == '/'
&& $_SERVER['REQUEST_URI'] != '/') {
$url = $modx->getOption('site_url');
$url .= substr($_SERVER['REQUEST_URI'], 0, -1);
$modx->sendRedirect($url,array(
'responseCode' => 'HTTP/1.1 301 Moved Permanently'));
}
Здравствуйте!
Позвольте представиться, меня зовут Марина. Более 10 лет я занимаюсь обслуживанием сайтов и развитием интернет проектов. Если вы хотите избавиться от хлопот связанных с созданием и поддержкой сайта, тогда вы попали по адресу. При работе с сайтами я предоставляю качественные услуги, ориентируясь на ваши индивидуальные потребности. Для связи со мной воспользуйтесь формой обратной связи.