Матвей Земсков

Заметки веб-мастера

Понедельник, 31 августа 2020 11:16

Полезные редиректы для сайта

Оцените материал
(3 голосов)

В этой небольшой статье мне хотелось бы поделиться с читателями несколькими полезными редиректами, которые я использовал при решении одной из задач по оптимизации сайта нашего клиента.

Итак, начнем.

Редирект с GET-параметром

Задание 1. нужно сделать редирект с /about/news/?PAGEN_1=2 на /news/?PAGEN_1=2. Правильным решением будет использование следующих директив mod_rewrite.

.htaccess

RewriteCond %{QUERY_STRING} PAGEN_1=(\d+)
RewriteRule ^about/news/$ news/?PAGEN_1=%1 [R=301,L]

Задание 2. Нужно сделать редирект с /catalog/section_1/section_2/element_1/?PAGEN_1=4 на /catalog/section_1/section_2/element_1/. То есть фактически убрать GET-параметр.

Решение:

.htaccess

RewriteCond %{QUERY_STRING} PAGEN_1=(\d+)$ [NC]
RewriteRule ^catalog/ section_1/ section_2/element_1/$ section_1/ section_2/element_1/? [R=301,L]

301 редирект со слешем и без него в конце URL

Задание 1. Нужно сделать так, чтобы все URL заканчивались слешем.

Решение. Сначала добавляем слеш в конце URL, затем проверяем не задвоился ли он и если это произошло убираем лишний слеш.

.htaccess

# Ставим слеш в конце URL (/)
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_URI} !\..+$
RewriteCond %{REQUEST_URI} !/$
RewriteRule (.*) https://princessa.ru/$1/ [R=301,L]

# Проверяем, повторяется ли слеш (//) более двух раз.
RewriteCond %{REQUEST_URI} ^(.*)/{2,}(.*)$

# Исключаем все лишние слеши
RewriteRule . %1/%2 [R=301,L] 

Редирект с заглавных букв в url на строчные

Задание 1. Нужно сделать так, чтобы все буквы в URL были строчными.

Решение. Это лучше сделать добавив следующий PHP-код в файл header.php шаблона сайта.

PHP

$current_url = $APPLICATION->GetCurDir();
if ( $_SERVER['REQUEST_URI'] != strtolower( $_SERVER['REQUEST_URI']) && $current_url != strtolower( $current_url) ) {   
	$new_url = str_replace($current_url,'',$_SERVER['REQUEST_URI']);
	header("HTTP/1.1 301 Moved Permanently");
	 header('Location: https://'.$_SERVER['HTTP_HOST'] . strtolower($current_url) . $new_url);
	exit();
}

Для проверки корректности редиректов воспользуйтесь сервисом redirect-checker

Прочитано 4450 раз
Мои услуги

Предлагаю следующие услуги:

  • Верстка шаблона сайта из дизайн-макета для CMS «1С-Битрикс Управление сайтом» и CMS “Joomla”
  • Создание форм различной сложности (обратная связь, анкеты и тп) для указанных CMS
  • Настройка и кастомизация компонентов и модулей для указанных CMS
  • Доработка модулей и компонентов для указанных CMS, добавление нестандартного функционала
  • Разработка лендингов (landing-pages)

По все вопросам обращайтесь через форму обратной связи

Скачать

Предлагаю вашему вниманию:

Наверх