Проблема с перезаписью старого URL-адреса на новый в диспетчере IIS и файле web.config

#asp.net #redirect #iis #url-rewriting

#asp.net #перенаправление #iis #url-перезапись

Вопрос:

Я здесь в крайнем случае. Итак, вот моя проблема, на работе мой начальник попросил меня переписать URL-адрес, чтобы он был более удобным для пользователя.

Старый шаблон такой: https://{hostServer}/SiteName/index.html

Новый должен быть таким: https://maps.swcs.be

Но я посмотрел в документе IIS, посмотрел здесь для получения дополнительной информации и т.д…

Я узнал, что это делается в файле web.config в корне репозитория «wwwroot», поэтому я написал там свое правило

вот оно

 <system.webServer>      
  <rule name="redirection d'url">
    <match url=".*"/>
      <conditions>
        <add input="{https://maps.swcs.be}" type="Pattern" pattern="Ëxpertises[0-9]index.html">
      </conditions>
    <action type="Rewrite" url="https://maps.swcs.be" />
  </rule>
</system.webServer>
  

Я <action type="Redirect" ...> тоже пробовал и другие вещи, но это единственное, что что-то вернуло… IISstart.htm файл

Я довольно новичок в перенаправлении URL, если бы кто-нибудь из вас мог меня просветить, это было бы здорово

Заранее спасибо

Комментарии:

1. 1. Просмотрите примеры, показанные Microsoft в документации, чтобы вы действительно начали понимать, как работают регулярные выражения и настройки, learn.microsoft.com/en-us/iis/extensions/url-rewrite-module /. … 2. Узнайте, как использовать FRT для отладки правил, learn.microsoft.com/en-us/iis/extensions/url-rewrite-module /…

2. Следите за своими словами. Если вы действительно тратите достаточно времени на статьи и примеры, вам не следовало использовать недопустимое условие в правиле.

3. Извините за мои слова, я действительно устал от этого ^^ в любом случае, я нашел другой способ, с метатегом в html-файле, спасибо за советы, я буду копать больше в этой области, чтобы действительно понять, что я испортил ^^

Ответ №1:

Прежде всего, я настоятельно рекомендую вам подробно ознакомиться с документацией, предоставленной лексом ли, которая поможет вам полностью понять, как использовать url rewrite .

Во-вторых, я хочу знать ваш начальный URL-адрес и переписанный URL-адрес, вам не нужно показывать правильный URL-адрес, просто пример. Например, начальный URL- http://example.com/aaa/bbb/ccc/index адрес и перезаписанный URL-адрес http://example.com/index

Итак, я предполагаю, что ваш первоначальный URL- https://{hostServer}/SiteName/index.html адрес и переписанный URL- https://maps.swcs.be адрес. введите описание изображения здесь
введите описание изображения здесь

Это правило будет соответствовать uri, если uri равен /SiteName/index.html , он будет перенаправлен на https://maps.swcs.be . Вы также можете изменить тип антиона на перезапись. Если вы выберете rewirte, ничего не произойдет при проверке URL-адреса в браузере. Но перенаправление приведет к изменению URL-адреса на новый в браузере.

Комментарии:

1. Хорошо, спасибо за ответ, я прочитал документы, предоставленные Лексом Ли, и даже его статьи, я понял принцип, и мы нашли решение здесь, на работе, уродливое. Я изменил мета-тег в HTML-файле, но мой босс хочет сохранить URL-адрес maps.swcs.be в браузере, а не в перенаправленном. Я узнал, что это перенаправление 301. Проще говоря, maps.swcs.be должен перенаправить на мою страницу ServerName/Example/index.html

2. Вы можете использовать rewrite для сохранения maps.swcs.be в браузере, подобном этому <имя правила =»перенаправление»> <соответствующий URL=».*» /> <условия> <добавить ввод =»{HTTP_HOST}» шаблон =»maps.swcs.be » /> </условия><тип действия=»Перезаписать» url=» ServerName/Example/index.html » /> </правило>

3. Если ваше решение может работать, пожалуйста, отправьте его в качестве ответа, чтобы помочь другим с подобными проблемами.

4. Извините, Чжан, это не работает, я попробовал ваше правило и HTML-тег вместе, он перенаправляет меня правильно, но он не сохраняет URL, как я хочу… Клянусь, я проклят ^^

5. Все в порядке. Новое правило — переписывать, а не перенаправлять. Какой URL-адрес вы хотите сохранить? Не могли бы вы подробно описать эффект, которого вы хотите достичь, потому что вы продолжаете упоминать HTML-тег. Перед вводом URL-адреса в браузере лучше очистить cookie и кэш. Если он по-прежнему не может сохранить URL-адрес, я предлагаю вам включить трассировку запросов на отказ, чтобы проверить процесс.