Хак Исправление проблемы с множественными слешами в url

PunPun

Coder
Команда форума
Приватовец
Регистрация
23 Фев 2017
Сообщения
618
Реакции
402
Баллы
63
В DLE есть проблема с слэшами в url, их может быть бесконечное количество и эти страницы отдают код 200. Так как разработчик не планирует этого исправлять уже как 12 версий движка, то вот вам мое исправление.

Для тех кто не понял.
https://mysite.com//
https://mysite.com///
https://mysite.com////
https://mysite.com///// и т .д.


Такие страницы существуют в DLE и отдают код 200. Нужно это исправить.

1. Открыть engine/engine.php найти
PHP:
if ($cstart < 0) $cstart = 0;
Выше вставить
PHP:
$slash_array = explode("/", $_SERVER['REQUEST_URI']);
$count_slash = array_count_values($slash_array);
if($count_slash[''] > 2) {
    $url_normal = array_filter($slash_array, function($element) {
        return !empty($element);
    });
    $url_redirect = implode("/", $url_normal);
  
    header("HTTP/1.0 301 Moved Permanently");
    header("Location: /{$url_redirect}/");
    die("Redirect");
}
На этом все.

Автор: Исправление проблемы с множественными слешами в url (Поддержать материально)
 
Сверху Снизу