Я использую mod_rewrite / .htaccess для красивых URL.
Я использую это условие / правило, чтобы исключить завершающие косые черты (или, скорее: переписать на non-trailing-slash-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
.
Итак, возможно ли исключить завершающие косые черты, только если на самом деле это только одна косая черта?
Извините, если это несколько раздражающий или странный вопрос!
Спасибо.