Я использую модуль Nginx n js для некоторых модификаций URL.
Мой пример использования - вернуть URI перенаправления для данного URI.
URI будут выглядеть следующим образом :
/books
/books/economic-genious
/books/flight-mechanics
Мое регулярное выражение для соответствия вышеуказанным URI выглядит следующим образом -
/books/(.*)|/books$
Первая часть выражения /books/(.*)
должна соответствовать ниже URI:
/books/economic-genious
/books/flight-mechanics
Вторая часть выражения /books$
должна соответствовать ниже URI:
/books
Мой пункт назначения настроен следующим образом: /ebooks/$1
. Таким образом, вышеуказанные URI будут преобразованы в:
/ebooks
/ebooks/economic-genious
/ebooks/flight-mechanics
Javascript код:
function getMappedURI(uri) {
var exp = new RegExp('/books/(.*)|/books$');
var destUri = '/ebooks/$1';
var redirectUri = uri.replace(exp, destUri);
return redirectUri;
}
Приведенный выше код работает нормально для следующих URI:
/books/economic-genious
/books/flight-mechanics
Но для URI /books
он должен вернуть /ebooks/
. Но он добавляет некоторый непечатаемый специальный символ в конце /ebooks/
.
Я думаю, что он пытается заменить $1
каким-то специальным символом.
Как избежать добавления специального символ в конце?