Редирект URL со слэшем в конце на без слэша
Это не вопрос, а решение.
Ниже код плагина, который решает задачу: редирект URL со слэшем в конце на URL без слэша в конце.
Гугл/яндекс в течение часа дал ответ на обратную задачу (редирект без слэша в конце на со слэшем).
Делюсь доработкой с надеждой, что это вылезет в топ и поможет сохранить время следуюшим поколениям :)
Также сделаны настройки по пунктам 1-6 отсюда.
Плагин настраивается на событие OnLoadWebDocument:
Ниже код плагина, который решает задачу: редирект URL со слэшем в конце на URL без слэша в конце.
Гугл/яндекс в течение часа дал ответ на обратную задачу (редирект без слэша в конце на со слэшем).
Делюсь доработкой с надеждой, что это вылезет в топ и поможет сохранить время следуюшим поколениям :)
Также сделаны настройки по пунктам 1-6 отсюда.
Плагин настраивается на событие OnLoadWebDocument:
<?php
if ($modx->event->name == 'OnLoadWebDocument') {
$request = $_SERVER['REQUEST_URI'];
$params = '';
if (strpos($request, '?') !== false) {
list($request, $params) = explode('?', $request);
}
$uri = $request;
if(!empty($uri) && strpos($uri, '.') === false && substr($uri, -1, 1) == '/') {
$uri = substr($uri, 0, -1);
if (!empty($params)) {
$uri .= '?' . $params;
}
$modx->sendRedirect($uri, array('responseCode' => 'HTTP/1.1 301 Moved Permanently'));
}
} Комментарии: 7
Авторизуйтесь или зарегистрируйтесь, чтобы оставлять комментарии.
Возможно только у меня.
RewriteEngine On
RewriteRule ^(.*)\/$ $1 [R=301,L]
Полностью файл .htaccess выглядит так:
Сделаны пункты с 1 по 6.
Добавлен [[Canonical]]
Тег base не удалял.
Плагин автора поста не использовал.
Все работает корректно (хостинг виртуальный, reg. ru)