Удалить трейлинг-косую черту с использованием .htaccess, кроме домашней/целевой страницы
Я успешно изменил свой файл .htaccess, чтобы удалить конечные косые черты на большинстве страниц, но мне интересно, как освободить мою домашнюю страницу/каталог? Например:
domain.com/test/успешно перенаправляется на домен .com/test
ОДНАКО, когда я ударил свой домен, он добавит корневой документ
domain.com/перенаправляется на domain.com/index.php
Есть ли условие, которое я могу добавить, чтобы игнорировать конечную косую черту root, чтобы она не пыталась удалить конечную косую черту и добавить мой default script? Вот что я до сих пор:
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_URI} ^(.+)/$
RewriteRule ^(.+)/$ /$1 [R=301,L]
Ответы
Ответ 1
OK. После нескольких проб и ошибок я ответил на свой вопрос.
Третья строка означает, что в URI должно быть что-то, чтобы выполнить перенаправление, а не перенаправлять, если URL-адрес просто содержит начальную косую черту.
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_URI} (.*)$
RewriteRule ^(.+)/$ http://www.domain.com/$1 [R=301,L]
Ответ 2
Перенаправляет запрос для всех URL-адресов, заканчивающихся на /
, за исключением корня:
RedirectMatch 301 ^(.+)/$ $1
Ответ 3
Как насчет
RewriteEngine On
RewriteRule ^(.*)/$ http://%{HTTP_HOST}/$1