Проблема в том, что некоторые сторонние веб-сайты ссылаются на нас с помощью пробела в HREF
В этом случае вы можете добавить что-то вроде следующего в верхней части вашего .htaccess
файл перенаправить (канонизировать) такие запросы на удаление завершающего пробела.
Например, перед фронт-контроллером Codeigniter:
RewriteCond %{REQUEST_URI} \s$
RewriteRule (.*) /$1 [R=302,L]
«Обработанный» URL-путь, соответствующий шаблону RewriteRule
, уже удалил конечный sla sh, а серверная переменная REQUEST_URI
- нет. Таким образом, мы можем проверить конечный пробел в REQUEST_URI
и просто перенаправить на «тот же» (обработанный) URL-путь, который захватывается шаблоном RewriteRule
.
Серверная переменная REQUEST_URI
уже закодирована в%. Класс сокращенных символов \s
соответствует любому пробелу, а завершающий $
привязывает его к концу URL-пути.
Сначала выполните тестирование с 302 (временным) перенаправлением, чтобы убедиться, что он работает ОК, прежде чем перейти к 301 (постоянному) перенаправлению.