Нет технической причины, по которой это невозможно сделать. Служба просто должна посмотреть, какие параметры она отправляет, а затем соответствующим образом переписать целевой URL.
Проблема в том, что не обязательно четко определено, как это сделать.
Предположим, у вас есть URL http://example.com/default.aspx?foo=bar
, а у него короткий URL http://foo.com/ABCD
. Что должно произойти, если вы попытаетесь получить доступ к http://foo.com/ABCD?foo=baz
? Должно ли оно заменить значение, чтобы вы получили foo=baz
? Должен ли он добавить его, чтобы сделать foo=bar&foo=baz
? Если мы включим оба, в каком порядке они должны быть?
Система не может знать, какие параметры безопасны для переопределения, а какие нет, потому что иногда вы действительно хотите, чтобы оба они были указаны в URL, и может иметь значение, в каком порядке они добавляются.
Вы можете возразить: «Ну, просто не допускайте этого для URL, где параметры уже присутствуют», но есть также проблема, которая может значительно усложнить процесс. Без этого вы просто ищете ключ в базе данных и отправляете заголовок перенаправления. Теперь вам нужно также проанализировать URL-адрес, чтобы проверить параметры, и добавить часть URL-адреса, по которому вы вызывались. Для этого требуется больше системных ресурсов на одно перенаправление, что может стать большой проблемой, если ваша служба используется очень часто - вам потребуется больше ресурсов сервера для обработки того же количества перенаправлений. Я не думаю, что компромисс считается «стоящим».