Перенаправление на индексную страницу при ошибке 404 на лазурных веб-сайтах

Я пытаюсь развернуть свое реагирующее приложение на лазурных веб-сайтах. Я успешно сделал это. Поскольку это одностраничное приложение, оно не работает при перезагрузке. Во время перезагрузки отображается код ошибки 404.

Я хочу перенаправить страницу на / (index.html или root) при возникновении ошибки 404. Я могу сделать это, отредактировав файл web.config. Но я не могу найти конкретную политику перенаправления, которая мне нужна. Например:

Мне нужно перенаправить:

http://letsmeetupp.azurewebsites.net/event/eventId=dsdsd-dsdsd-1475750226814

это к

http://letsmeetupp.azurewebsites.net/#!/event/eventId=dsdsd-dsdsd-1475750226814

Я хочу перенаправить с префиксом #!/, чтобы я мог найти этот путь в своем приложении для реагирования и нажимать состояния в html 5.

Мой текущий файл web.config таков. Это перенаправляет меня на /, но мне нужен весь путь с префиксом, который помогает мне анализировать хэш и состояния отправки (HTML 5 HISTORY API).

<?xml version="1.0" encoding="UTF-8"?>

<configuration>

    <system.web>
        <compilation debug="false" targetFramework="4.0" />
      <customErrors mode="On">
        <error statusCode="404" redirect="index.aspx?sec=404" />
      </customErrors>
    </system.web>
    <system.webServer>
        <defaultDocument>
            <files>
                <clear />
                <add value="default.aspx" />
                <add value="Default.htm" />
                <add value="Default.asp" />
                <add value="index.htm" />
                <add value="index.html" />
                <add value="iisstart.htm" />
            </files>
        </defaultDocument>
        <httpErrors errorMode="Custom" existingResponse="PassThrough">
            <remove statusCode="404" subStatusCode="-1" />
            <error statusCode="404" prefixLanguageFilePath="#!/" path="/" responseMode="Redirect" />
        </httpErrors>
    </system.webServer>

</configuration>

Редактировать после комментариев jambor:

Привет, @Jambor-MSFT. У меня есть reactJS (одностраничное приложение), развернутое на лазурных веб-сайтах. Дело в том, что мой SPA - это MVC. Там я определил свои маршруты. Технически я использую react-router для определения маршрутов в своем приложении SPA. Итак, на ваш вопрос Это нормально работает на вашем локальном компьютере?. Да, в самом деле. Я понимаю, что IIS не может понять маршруты. Я имею в виду, что он отображает index.html, когда http://letsmeetupp.azurewebsites.net попадает в браузер. И все маршруты внутренне управляются реагирующим файлом, включенным в index.html. То, что я хочу, находится на разных маршрутах, отличных от /, он должен перенаправлять на index.html с префиксом. например, http://letsmeetupp.azurewebsites.net/#!/event/eventId=dsdsd. После этого я могу внутренне обрабатывать маршруты, удаляя префикс и отображая правильный путь.


person Lakshman Diwaakar    schedule 06.10.2016    source источник
comment
Он нормально работает на вашем локальном? Или это не работает только в веб-приложении Azure. Если ваше веб-приложение использует MVC, я думаю, что лучше определить правило маршрута в функции MapRoute.   -  person Jambor - MSFT    schedule 07.10.2016
comment
Объяснение было больше, поэтому добавил ответ на ваш комментарий. Проверьте это @JAMBOR   -  person Lakshman Diwaakar    schedule 07.10.2016
comment
@ Jambor-MSFT Приходится делать то же самое в лазури. хотите выполнить 8-й шаг в вопросе о перенаправлении.   -  person Lakshman Diwaakar    schedule 08.10.2016