Шаблон должен соответствовать:
/js # has no preceding segements
/www/js # has a segment
/www/test.d/js # contains a dot within preceding segments
и не должен совпадать:
/www/js/jquery.js # contains a dot at last segment
/www/js/ # has a trailing slash
/www/js/hello.d/jquery.js/ # has a trailing slash
Поэтому создайте такой шаблон, как показано ниже:
var pattern = @"^(((.*/)|(/?))[^/.]+(?!/$))$";
var options = new RewriteOptions()
.AddRedirect(pattern, "$1/",301);
ибудет работать.
Контрольные примеры:
должен перенаправить:
GET https://localhost:5001/js HTTP/1.1
GET https://localhost:5001/xx/js HTTP/1.1
GET https://localhost:5001/xx/test.d/js HTTP/1.1
не должен перенаправлять:
GET https://localhost:5001/xx/js/ HTTP/1.1
GET https://localhost:5001/xx/jquery.js HTTP/1.1
GET https://localhost:5001/xx/hello.d/jquery.js HTTP/1.1