У меня есть веб-сайт, содержащий ссылки в разных местах, каждая ссылка передает пользователя в конкретный документ.
Эти ссылки жестко закодированы, что делает каждое обновление на сайте очень сложным.
Недавно документы были обновлены, и мы хотели бы обновить каждую старую ссылку с соответствующей новой.
Например
(http://www.domain.com/OnlineDoc/default.aspx#ItemID=3551)
необходимо обновить до
(http://domain.docfactory.com/#!doc/Toolkits/Item1-Administration-Doc)
Каждый документ документа определяется с помощью ItemID
.
То, что я пытаюсь сделать, это программно перенаправить каждую старую ссылку на соответствующую новую.
Я попытался использовать модуль URL Rewrite, но кажется, что он игнорирует все после "#", что важно, потому что он определяет, к какому документу нам нужно перейти.
Мои вопросы:
Будет ли работать модуль URL Rewrite? (имеющий фрагмент с "#")
Если нет, будет ли работать Http-модуль?
Я пытаюсь найти способ легко обновлять ссылки, не переходя в каждый веб-приложение HTML и делать это вручную.
Фрагмент не отправляется на сервер. Он доступен только для браузера. Поэтому вам нужно решение, которое связано с клиентской стороной.
Но вы можете использовать модуль URL Rewrite в сочетании со сценариями на стороне клиента в OnlineDoc/default.aspx
который помещает фрагмент в путь или часть запроса URL-адреса, используя временную переадресацию на стороне клиента. Это делает идентификатор элемента документа видимым для модуля перезаписи URL-адресов, который может перенаправлять постоянную серверную ссылку на правильный URL-адрес.
Чтобы уточнить:
/OnlineDoc/default.aspx#ItemID=123
/OnlineDoc/default.aspx?ItemID=123
"временную переадресацию на стороне клиента" (на самом деле, просто автоматическую навигацию) в /OnlineDoc/default.aspx?ItemID=123
/OnlineDoc/default.aspx?ItemID=123
docfactory.com/#!doc/Toolkits/Item1-Administration-Doc
URL-адресов перехватывает запросы и отвечает постоянным перенаправлением на docfactory.com/#!doc/Toolkits/Item1-Administration-Doc
docfactory.com/#!doc/Toolkits/Item1-Administration-Doc
Первое перенаправление является временным, потому что вы не можете создавать постоянные переадресации с клиентскими скриптами. Второе перенаправление является постоянным, потому что новый URL-адрес должен всегда заменять старый.
Общий опыт для пользователей, использующих этот метод, может быть немного неожиданным, так как пользователи, отправляющиеся в OnlineDoc, перенаправляются до двух раз, прежде чем они достигают намеченного документа. Большинство пользователей, вероятно, не заметят второй переадресации, но первый, скорее всего, будет заметен, хотя бы немного.