Я использую mod_rewrite/.htaccess для довольно URL-адресов.
Я использую это условие/правило для исключения конечных косых черт (вернее: переписываю URL-адрес без привязки к косую черту с помощью перенаправления 301, я делаю это, чтобы избежать дублирования контента и потому, что мне нравятся URL-адреса с никаких косых черт лучше):
RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d RewriteCond %{HTTP_HOST} !^\.localhost$ [NC] RewriteRule ^(.+)/$ http://%{HTTP_HOST}/$1 [R=301,L]
Хорошо работает до сих пор. Только недостаток:
он также перенаправляет "множественные трейлинг-косые черты" -URLs на URL без привязки к косой чертой.
Пример: http://example.tld/foo/bar//////
вперед до http://example.tld/foo/bar
в то время как я хочу, чтобы http://example.tld/foo/bar/
перешел на http://example.tld/foo/bar
.
Итак, возможно ли исключить только следы слэшей, если на самом деле это всего лишь одна конечная косая черта?
Извините, если это несколько раздражающий или странный вопрос!
Спасибо.