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

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

Немного о веб-технологиях

Мой блог содержит заметки о различных веб-технологиях, как клиентских, так и серверных. Здесь будут раскрыты вопросы html-верстки, программирования на javaScript и jQuery,разработки на PHP. Не останутся без внимания популярные системы управления сайтом «1С-Битрикс», Joomla и другие. О работе с ними, я также буду писать.

Мои заметки предназначены в основном для начинающих веб-мастеров. Несмотря на это, опытные разработчики также найдут здесь что-нибудь интересное для себя.

В своем блоге я собираюсь публиковать статьи о современных веб-технологиях (HTML5, CSS3 и других). Если в процессе работы над проектами я открываю для себя «свежее» решение какой-либо задачи, я записываю сюда информацию об этом, что позволяет мне при необходимости применять полученные знания в будущем.

Надеюсь информация будет полезна для посетителей.

 
Понедельник, 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

Прочитано 4368 раз
Свежие заметки
Наверх