Я использую mod_rewrite/.htaccess для симпатичных URL-адресов.mod_rewrite: удалить трейлинг-косую черту (только один!)
Я использую это условие/правило для устранения конечных косых черт (а точнее: переписываю 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
.
Итак, можно ли исключить только следы слэшей, если на самом деле это только один trailing slash?
Извините, если это несколько досадный или странный вопрос!
Спасибо.
почему снова задают тот же вопрос? http://stackoverflow.com/questions/3068091/mod-rewrite-remove-trailing-slash-only-one – unbeli