Добавляем косую черту/закрывающий слеш в конец URL
Наконец решил окончательно добить решение, позволяющее добавлять косую черту, по-другому закрывающий слеш или trailing slash, в конце URL. Важно, что данное решение будет не только для MODX Revolution, но рассматривать его мы будем именно на примере использования в этой замечательной CMS.
Разобьем процесс добавление закрывающих слешей к URL на два этапа. Первый будет касаться системы управления, второй будет касаться настройки сервера (в моем случае Apache). Для добавления косой черты ко всем документам в MODX Revolution необходимо, чтобы были включены Friendly URLS (системная настройка friendly_urls) и Friendly Alias Path (настройка use_alias_path).
После того, как мы убедились, что данные настройки включены, нам нужно сделать так, чтобы CMS формировала ссылки с закрывающим слешем в конце. Для этого мы переходим в Content Types (Типы Содержимого) и в находим тип отвечающий за HTML документы и меняем File Extensions (Расширение Файла) на косую черту.
Все, после этого фокуса CMS будем формировать все ссылки для HTML документов с закрывающим слешем. Теперь немного доработаем настройки сервера, чтобы закрывающие слеши обрабатывались верно. Я работаю с сервером Apache, поэтому внесу следующие правки в .htaccess. Берем оригинальный файл и после :
#RewriteCond %{SERVER_PORT} !^443
#RewriteRule (.*) https://example-domain-please-change.com/$1 [R=301,L]
вставляем следующий код:
# очищаем URL от дублирования слешей, в любом месте, включая конец URL
RewriteCond %{THE_REQUEST} //
RewriteRule ^.*$ $0 [R=302,L,NE]
# любой файл содержащий .html и не существующий физически переписывается
RewriteCond %{REQUEST_URI} (\.)
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ([^.]+)\.html$ $1/ [R=301,L]
# любой файл не содержащий точку и не заканчивающийся на слеш переписывается
RewriteCond %{REQUEST_URI} !(/$|\.)
RewriteRule (.*) %{REQUEST_URI}/ [R=301,L]
# The Friendly URLs part
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ index.php?q=$1 [L,QSA]
Все, после внесения всех этих изменений добавление косой черты/закрывающего слеша к концу URL работает как часы. Проверьте например на этом сайте :)
Комментарии (5)