Перенаправление папок и файлов в одной папке на новую папку в IIS

Вопрос или проблема

Я долго искал решение этого вопроса и ничего не нашел.

У меня есть папка “documents”, и я хочу перенаправить все папки и файлы внутри “documents” с /documents на /images/documents. Это одно из правил, которые я пробовал, и ничего, что я делаю, не работает. Другие более простые правила работают нормально.

Например, я хочу, чтобы domain.com/documents/news/2024/file.pdf

перенаправлялся на domain.com/images/documents/news/2024/file.pdf

вот на чем я нахожусь

<rule name="..." stopProcessing="true">
    <match url="^documents/news/(.*)$" />
    <action type="Rewrite" url="images/documents/news/{R:1}" redirectType="Permanent"/>
</rule>

Ответ или решение

Для выполнения редиректа всех файлов и папок из директории /documents на новую директорию /images/documents, вам нужно использовать правила перезаписи (rewrite rules) в конфигурации IIS. Пример ниже поможет вам правильно настроить редирект.

  1. Откройте файл web.config, расположенный в корне вашего сайта.
  2. В разделе <system.webServer> убедитесь, что у вас есть секция <rewrite> (если её нет, добавьте):
<system.webServer>
    <rewrite>
        <rules>
            <rule name="Redirect Documents Folder" stopProcessing="true">
                <match url="^documents/(.*)" />
                <action type="Redirect" url="/images/documents/{R:1}" redirectType="Permanent" />
            </rule>
        </rules>
    </rewrite>
</system.webServer>

Объяснение правил:

  • <match url="^documents/(.*)" />: Это правило будет совпадать с любым URL, который начинается с /documents/ и захватывает все, что следует за этим, благодаря (.*).

  • <action type="Redirect" url="/images/documents/{R:1}" redirectType="Permanent" />: Данная строка указывает, куда перенаправить запрос. {R:1} ссылается на часть URL, пойманную с помощью (.*), таким образом перенаправление будет происходить на /images/documents/ с сохранением структуры подкаталогов и файлов.

  1. Сохраните изменения и убедитесь, что IIS перезагрузил конфигурацию.

  2. Запустите тестирование, попытавшись получить доступ к файлу, например, domain.com/documents/news/2024/file.pdf, и проверьте, что он перенаправляется на domain.com/images/documents/news/2024/file.pdf.

Если у вас возникнут проблемы, убедитесь, что:

  • Модуль перезаписи URL включен в IIS.
  • Вы не имеете конфликтующих правил, которые могут повлиять на процесс редиректа.

Следуя указаниям выше, вы сможете успешно настроить редирект всех файлов и папок из каталога /documents в каталог /images/documents.

Оцените материал
Добавить комментарий

Капча загружается...