Перенаправить ссылки с фрагментом (#) - asp.net

1

У меня есть веб-сайт, содержащий ссылки в разных местах, каждая ссылка передает пользователя в конкретный документ.
Эти ссылки жестко закодированы, что делает каждое обновление на сайте очень сложным.
Недавно документы были обновлены, и мы хотели бы обновить каждую старую ссылку с соответствующей новой.

Например

(http://www.domain.com/OnlineDoc/default.aspx#ItemID=3551)

необходимо обновить до

(http://domain.docfactory.com/#!doc/Toolkits/Item1-Administration-Doc)

Каждый документ документа определяется с помощью ItemID.

То, что я пытаюсь сделать, это программно перенаправить каждую старую ссылку на соответствующую новую.

Я попытался использовать модуль URL Rewrite, но кажется, что он игнорирует все после "#", что важно, потому что он определяет, к какому документу нам нужно перейти.

Мои вопросы:

  1. Будет ли работать модуль URL Rewrite? (имеющий фрагмент с "#")

  2. Если нет, будет ли работать Http-модуль?

Я пытаюсь найти способ легко обновлять ссылки, не переходя в каждый веб-приложение HTML и делать это вручную.

  • 0
    Фрагмент не отправляется на сервер. Это доступно только для браузера. Таким образом, вам нужно решение, которое включает в себя на стороне клиента. Но вы можете использовать модуль перезаписи URL в сочетании со сценариями на стороне клиента в OnlineDoc / default.aspx, который помещает фрагмент в путь или часть запроса URL-адреса с помощью временного перенаправления на стороне клиента. Это делает идентификатор элемента документа видимым для модуля перезаписи URL, который может выполнять постоянное перенаправление на стороне сервера на правильный URL. Впрочем, опыт для пользователей может быть немного неожиданным.
  • 0
    @bzlm Большое спасибо, я попробую. Можете ли вы просто объяснить, как опыт может быть неожиданным?
Показать ещё 2 комментария
Теги:
fragment
url
rewrite

1 ответ

2
Лучший ответ

Фрагмент не отправляется на сервер. Он доступен только для браузера. Поэтому вам нужно решение, которое связано с клиентской стороной.

Но вы можете использовать модуль URL Rewrite в сочетании со сценариями на стороне клиента в OnlineDoc/default.aspx который помещает фрагмент в путь или часть запроса URL-адреса, используя временную переадресацию на стороне клиента. Это делает идентификатор элемента документа видимым для модуля перезаписи URL-адресов, который может перенаправлять постоянную серверную ссылку на правильный URL-адрес.

Чтобы уточнить:

  1. Запросы пользователя /OnlineDoc/default.aspx#ItemID=123
  2. Сценарии на стороне клиента на этой странице /OnlineDoc/default.aspx?ItemID=123 "временную переадресацию на стороне клиента" (на самом деле, просто автоматическую навигацию) в /OnlineDoc/default.aspx?ItemID=123
  3. Пользователь автоматически запрашивает /OnlineDoc/default.aspx?ItemID=123
  4. Модуль docfactory.com/#!doc/Toolkits/Item1-Administration-Doc URL-адресов перехватывает запросы и отвечает постоянным перенаправлением на docfactory.com/#!doc/Toolkits/Item1-Administration-Doc
  5. Пользователь автоматически запрашивает docfactory.com/#!doc/Toolkits/Item1-Administration-Doc

Первое перенаправление является временным, потому что вы не можете создавать постоянные переадресации с клиентскими скриптами. Второе перенаправление является постоянным, потому что новый URL-адрес должен всегда заменять старый.

Общий опыт для пользователей, использующих этот метод, может быть немного неожиданным, так как пользователи, отправляющиеся в OnlineDoc, перенаправляются до двух раз, прежде чем они достигают намеченного документа. Большинство пользователей, вероятно, не заметят второй переадресации, но первый, скорее всего, будет заметен, хотя бы немного.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню